我在我的简单安卓游戏中有两个类:myBaseObject,myMissile ...我希望用Mediaplayer添加声音myMissile类。
public class myBaseObject {
MediaPlayer shoot;
Context context;
// ...
public void myShoot()
{
shoot = MediaPlayer.create(context, R.raw.laser_effect);
shoot.setVolume(100,100);
shoot.start();
}
}
// .......
public class myMissile extends myBaseObject {
public Missile( Bitmap bitmap, float x, float y, double velocity,
double direction) {
//...
myShoot();
}
}
在与活动类开始游戏后,ı在媒体播放器上看到NullPointerException ..并且游戏崩溃......怎么能解决这个问题?我尝试了很多方法..但我无法解决..
这是我的LogCat 02-02 12:37:43.496:E / AndroidRuntime(15009):at com.mycorp.myapp.myMissile。(myMissile.java:41)
02-02 12:37:43.496:E / AndroidRuntime(15009):at com.mycorp.myapp.MissileHandler.update(MissileHandler.java:75)
02-02 12:37:43.496:E / AndroidRuntime(15009):at com.mycorp.myapp.GameEngine.update(GameEngine.java:159)
02-02 12:37:43.496:E / AndroidRuntime(15009):at com.mycorp.myapp.GameThread.run(GameThread.java:51)
02-02 12:38:32.811:I / Process(15009):发送信号。 PID:15009 SIG:9
答案 0 :(得分:0)
根据您的问题,很明显您没有传递您的活动背景。这就是为什么它会给你nullpointer异常。
像beloe一样修改你的代码可以帮到你
public class myBaseObject {
MediaPlayer shoot;
Context context;
public void myShoot(Context ctx){
this.context = ctx;
shoot = MediaPlayer.create(context, R.raw.laser_effect);
shoot.setVolume(100,100);
shoot.start();
}
}
public class myMissile extends myBaseObject {
//Context ctx
public Missile( Bitmap bitmap, float x, float y, double velocity,
double direction) {
.
.
.
myShoot(this);
}