快速提问:
我有以下代码:
public EngineOptions onCreateEngineOptions() {
instance = this;
mCamera = new org.andengine.engine.camera.Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera);
engineOptions.getAudioOptions().setNeedsSound(true);
//engineOptions.getAudioOptions().setNeedsMusic(true);
return engineOptions;
}
和
protected void onCreateResources() {
SoundFactory.setAssetBasePath("mfx/");
try {
this.testSound = SoundFactory.createSoundFromAsset(this.mEngine.getSoundManager(), this, "explosion.ogg");
} catch (final IOException e) {
Debug.e(e);
}
}
最后,我在另一场将此 Activity 作为 Realm 的类里面演奏:
activity.mCurrentScene.registerTouchArea(image);
activity.mCurrentScene.setOnAreaTouchListener(new IOnAreaTouchListener() {
@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
ITouchArea pTouchArea, float pTouchAreaLocalX,
float pTouchAreaLocalY) {
Zancudo.this.activity.testSound.play();
return false;
}
});
任何想法为什么我会得到一个nullpointer异常?
谢谢!
最佳答案
对于播放声音,您使用的方式如下
Zancudo.this.activity.testSound.play();
这看起来像问题,因为此处未在
Zancudo
类中实例化 Activity 对象。要访问testSound,您需要获取 Zancudo Activity 的实例。
关于android - 创建声音时,AndEngine NullpointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783255/