Java NullPointerException获取资源

时间:2014-08-25 14:29:15

标签: java android android-mediaplayer

我正在编写一个简单的Android应用程序(主要是为了测试我在真实应用程序中需要使用的内容),我需要使用MediaPlayer播放声音。在这种情况下,我使用的是kalimba.mp3(没有大写字母)。但是当我尝试运行应用程序时,它会因为空对象引用而立即崩溃。错误如下,我的代码也是如此。问题是,我没有看到任何问题,它在编辑我的代码时没有给我任何错误。如何阻止此错误?我之前从未使用过MediaPlayer。提前谢谢!

代码:

// Player of "kalimba.mp3"
private MediaPlayer kalimbaPlayer = MediaPlayer.create(this, R.raw.kalimba);

// Play/stop the sound    
public void playSound(View view) { kalimbaPlayer.start(); }
public void stopSound(View view) { kalimbaPlayer.stop(); kalimbaPlayer.release(); }

错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference

3 个答案:

答案 0 :(得分:17)

this可能是您的活动。在初始化字段时,活动可能还没有完全准备好。

相反,在Activity的onCreate()方法中初始化MediaPlayer。

答案 1 :(得分:0)

在班级中创建全局变量

 public Resources mRes;

在此之后

 @Override
Oncreate(Bundle saveInstance){
mRes = getActivity().getResources();
}

现在用户mRes对象获取资源.... 例如

mRes.getString(R.string.SEARCH);

答案 2 :(得分:-2)

你使用过onCreate

kalimbaPlayer = MediaPlayer.create(nameActivity.this,R.raw.kalimba);

下午。 nameActivity = nameActivity class