2013-04-03 58 views
0

我在xml文件中有一个imageview和按钮。 加载image1并播放song1.mp3文件。当歌曲结束时,应加载 下一张图片并播放song2.mp3歌曲,直到最后一张图片。 关闭并退出应用程序的按钮。ImageView没有得到image.App不加载在模拟器中.NullPointerException

import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.os.Bundle; 
import android.widget.ImageView; 
import android.app.Activity; 
import android.content.res.AssetFileDescriptor; 

public class MainActivity extends Activity { 
public MediaPlayer mpp; 
final int image[] = {R.drawable.apple,R.drawable.ball,R.drawable.cat}; 
int i=0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
      final ImageView img = (ImageView) findViewById(R.id.img); 


    String audio[]={"song1.mp3","song2.mp3","song3.mp3"}; 

    // MediaPlayer mp = new MediaPlayer(); 

    AssetFileDescriptor descriptor; 
      try { 
       descriptor = getAssets().openFd(audio[i]); 
       mpp.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(),descriptor.getLength()); 
       descriptor.close(); 
       mpp.prepare(); 
       mpp.start(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      mpp.setOnCompletionListener(new OnCompletionListener() { 

       @Override 
       public void onCompletion(MediaPlayer arg0) { 
        // TODO Auto-generated method stub 
        img.setImageResource(image[i]); 
        i++; 
        mpp.start(); 
       } 
      }); 
} 

}

回答

0

很难说没有logcat的输出任何东西,但它看起来像你空引用。调用img.setImageResource(image[i])之前,你必须分配到的ImageView变量img,如果查看在您activity_main.xml中定义的,你应该在onCreate()添加以下行:

img = (ImageView) findViewById(R.id.you_imageview_id); 
+0

我收到安装错误:INSTALL_FAILED_INSUFFICIENT_STORAGE.Please help.Thanks。 – bama 2013-04-03 19:32:46

+0

也许这个答案会有帮助:[链接](http://stackoverflow.com/a/3945915/265597),最终从模拟器中删除一些应用程序(如果你之前安装任何),为新应用程序腾出空间。 – Leszek 2013-04-03 19:38:20

+0

谢谢你,我正在尝试你的选择。 – bama 2013-04-03 19:54:25

0

对于内存不足测试手机(有用的人谁使用像我这样的个人手机)

  1. 如果内存真的满了,那么请安装一些不需要的应用程序。
  2. 如果上述说明不正确,则重新启动手机将解决问题。

我在我的三星迷你手机中遇到了这个错误。重新启动手机始终工作。

相关问题