2016-01-14 4 views
0

У меня возникли некоторые проблемы с некоторыми кодовыми табличками кодов на Android Studio. Я работал через отладчик и обнаружил, что mEngine не инициализирован и получает доступ как нулевое значение. Я следовал этому руководству: http://www.makethegame.net/android-andengine/how-to-setup-andengine-with-android-studio/AndEngine mEngine null reference?

Я не уверен, как исправить эту ошибку, так как я не знаю, как инициализировать mEngine. Какие-нибудь советы?

public class gameplay extends LayoutGameActivity { 

    //AndEngine variables// 
    private Camera camera; 
    private int CAMERA_WIDTH = 320; 
    private int CAMERA_HEIGHT = 480; 
    public Scene currentScene; 
    //End of AndEngine variables// 

    //AndEngine boiler plate code// 
    @Override 
    protected int getLayoutID() { 
     return R.layout.activity_gameplay; 
    } 

    @Override 
    protected int getRenderSurfaceViewID() { 
     return R.id.gameView; 
    } 

    @Override 
    public EngineOptions onCreateEngineOptions() { 
     this.camera = new Camera(0,0, CAMERA_WIDTH, CAMERA_HEIGHT); 
     EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new FillResolutionPolicy(), camera); 
      engineOptions.getAudioOptions().setNeedsMusic(true).setNeedsSound(true); 
     engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON); 
     return engineOptions; 
    } 

    @Override 
    public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws IOException { 
     pOnCreateResourcesCallback.onCreateResourcesFinished(); 
    } 

    //ERROR IN THIS METHOD BELOW 
    @Override 
    public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws IOException { 
     mEngine.registerUpdateHandler(new FPSLogger()); 
     //Attempt to read from field 'org.andengine.engine.Engine org.andengine.opengl.view.EngineRenderer.mEngine' on a null object reference 
     currentScene = new Scene(); 
     currentScene.setBackground(new org.andengine.entity.scene.background.Background(0.09804f, 0.7274f, 0.8f)); 
    } 

    @Override 
    public void onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws IOException { 
     pOnPopulateSceneCallback.onPopulateSceneFinished(); 
    } 
    //End of AndEngine boiler plate code// 
} 

Прикрепленные ниже мой журнал ошибок:

enter image description here

ответ

1

Нужны ли вам расширить LayoutGameActivity. Попробуйте BaseGameActivity вместо этого.

Попробуйте ввести строку с ошибкой mEngine.registerUpdateHandler(new FPSLogger()); в OnPopulateScene.