ImageView没有得到image.App不加载在模拟器中.NullPointerException
问题描述:
我在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();
}
});
}
}
答
很难说没有logcat的输出任何东西,但它看起来像你空引用。调用img.setImageResource(image[i])
之前,你必须分配到的ImageView变量img
,如果查看在您activity_main.xml中定义的,你应该在onCreate()
添加以下行:
img = (ImageView) findViewById(R.id.you_imageview_id);
答
对于内存不足测试手机(有用的人谁使用像我这样的个人手机)
- 如果内存真的满了,那么请安装一些不需要的应用程序。
- 如果上述说明不正确,则重新启动手机将解决问题。
我在我的三星迷你手机中遇到了这个错误。重新启动手机始终工作。
我收到安装错误:INSTALL_FAILED_INSUFFICIENT_STORAGE.Please help.Thanks。 – bama 2013-04-03 19:32:46
也许这个答案会有帮助:[链接](http://stackoverflow.com/a/3945915/265597),最终从模拟器中删除一些应用程序(如果你之前安装任何),为新应用程序腾出空间。 – Leszek 2013-04-03 19:38:20
谢谢你,我正在尝试你的选择。 – bama 2013-04-03 19:54:25