2016-06-26 5 views
0

私はアプリを作ったが、うまくいくが、何か変わったことが起こる。 1回目のアプリケーションをインストールして起動してonPauseを入れ、携帯電話をロックしてからアイコンをクリックして再開し、読み込まれたらBACKボタン(Gdx.app.exit();)をクリックすると、私は次の例外を除いて:致命的な例外:GLThread on 1st launch

E/AndroidRuntime: FATAL EXCEPTION: GLThread 1723 
     java.lang.NullPointerException 
     at com.badlogic.gdx.Game.render(Game.java:46) 
     at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:459) 
     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1524) 
     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1248) 

あなたは再びアプリケーションを起動し、正常に動作した後。 このエラーを解消しようとして、gdx-setup.jarを使って新しいプロジェクトを作成しました。私はAndroidLauncherを変更していませんでした。マニフェストでのみ、風景を肖像画に変えました。私はコードがほとんどない4つのクラスしか持っていません。問題はまだあります。誰かが何が起こるか知っているかもしれません。私はどんな助けにも感謝します。ありがとう!

マイコード:

メインクラス。

public class TenPuzzle extends Game { 

    @Override 
    public void create() { 

     setScreen(new SplashScreen(this)); 
    } 

} 

SpalashScreen.java

public class SplashScreen extends Screens{ 

    public SplashScreen(TenPuzzle ten) { 
     super(ten); 

     Gdx.app.log("1010", "SPLASH"); 

    } 

    @Override 
    public void draw(float delta) { 
     game.setScreen(new MainMenuScreen(game)); 

    } 

    @Override 
    public void update(float delta) { 

    } 

} 

MainMenuScreen.java

public class MainMenuScreen extends Screens { 


    public MainMenuScreen(TenPuzzle ten) { 
     super(ten); 

     Gdx.app.log("1010", "Main menu screen"); 
    } 

    @Override 
    public void draw(float delta) {} 

    @Override 
    public void update(float delta) {} 

    public boolean keyDown(int keycode) { 

     if(keycode == Input.Keys.BACK){ 
       Gdx.app.exit(); 
     } 
     return false; 
    } 

} 

とScreens.java

public abstract class Screens extends InputAdapter implements Screen { 

    public static float SCREEN_WIDTH = 575; 
    public static float SCREEN_HEIGHT = 1024; 

    public TenPuzzle game; 

    public OrthographicCamera oCam; 
    public SpriteBatch batcher; 
    public Stage stage; 
    public static float diffViewportStage; 
    public Screens(TenPuzzle game) { 
     this.game = game; 
     stage = new Stage(new ExtendViewport(Screens.SCREEN_WIDTH, 
        Screens.SCREEN_HEIGHT, 768, 1224)); 

     oCam = new OrthographicCamera(stage.getWidth(), stage.getHeight()); 
      oCam.position.set(stage.getWidth()/ 2,stage.getHeight()/2f, 0); 


     InputMultiplexer input = new InputMultiplexer(this, stage); 
     Gdx.input.setInputProcessor(input); 
     Gdx.input.setCatchBackKey(true); 

    } 

    @Override 
    public void render(float delta) { 

     update(delta); 
     oCam.update(); 
     stage.act(delta); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     draw(delta); 
     stage.draw(); 

    } 

    public abstract void draw(float delta); 

    public abstract void update(float delta); 

    @Override 
    public void resize(int width, int height) { 

     stage.getViewport().update(width, height, true); 

    } 

    @Override 
    public void show() { 
    } 

    @Override 
    public void hide() { 

    } 

    @Override 
    public void pause() { 
    } 

    @Override 
    public void resume() { 

    } 

    @Override 
    public void dispose() { 
     stage.dispose(); 

    } 

    @Override 
    public boolean keyDown(int keycode) { 
     return super.keyDown(keycode); 
    } 


} 
+0

ようこそStackOverflow。まず、投稿にいくつかの '}'があります。間違っている人やコードにはそれらの人がいますか?いずれかの方法で修正してください。第二に、あなたのコードはやや長いです。あなたはそれをさらに減らそうとしましたか?たとえば、空の関数を削除します。サイズをさらに減らすと、あなたの質問にもっと注意を払うと思います(http://stackoverflow.com/help/mcveによる)。宜しくお願いします。 – YakovL

+0

@ヤコブラ[OK]をすべてチェックしました。投稿中は間違いでした。そしてコードを少しきれいにしました。とにかく、ほとんど何もないし、私はまだこのエラーがあります。 – ketty

答えて

関連する問題