2012-05-09 46 views
1

glsurfaceviewレンダラーにホームボタンを押した後に再開してゲームに再入力できるコードが含まれていて、正常に動作しますが、戻るボタンでゲームを閉じると、ゲームに再び入ると、クラッシュして終了します。 私はOnDestroyにfinish()を書きましたが、動作しませんでした。 私はすでにボタンを押したときにonDestroy()がそれを実行することを確認しました。 onSurfaceCreatedで 私が起こって何ができるか理解しない、テクスチャをロードし、それらのテクスチャを描くために頂点を設定する機能を持っていますが、アプリケーションを終了した後にエラーが発生しました

編集:

これは私がゲームをもう一度起動した後、ログであります私は、プロセスを殺す場合

05-08 20:30:41.069: I/GLThread(6272): noticed surfaceView surface lost tid=12 
05-08 20:30:41.069: I/GLThread(6272): onResume tid=12 
05-08 20:30:41.169: I/GLThread(6272): noticed surfaceView surface acquired tid=12 
05-08 20:30:41.169: W/EglHelper(6272): start() tid=12 
05-08 20:30:41.219: W/EglHelper(6272): createContext [email protected] tid=12 
05-08 20:30:41.219: I/GLThread(6272): noticing that we want render notification tid=12 
05-08 20:30:41.219: W/GLThread(6272): egl createSurface 
05-08 20:30:41.219: W/EglHelper(6272): createSurface() tid=12 
05-08 20:30:41.219: W/GLThread(6272): onSurfaceCreated 
05-08 20:30:41.219: W/GLThread(6272): onSurfaceChanged(480, 320) 
05-08 20:30:41.379: W/EglHelper(6272): destroySurface() tid=12 
05-08 20:30:41.389: W/EglHelper(6272): finish() tid=12 
05-08 20:30:41.389: W/dalvikvm(6272): threadid=9: thread exiting with uncaught exception (group=0x40018578) 
05-08 20:30:41.389: E/AndroidRuntime(6272): FATAL EXCEPTION: GLThread 12 
05-08 20:30:41.389: E/AndroidRuntime(6272): java.lang.NullPointerException 
05-08 20:30:41.389: E/AndroidRuntime(6272):  at glfg.gl.render.setverticesSquare(render.java:180) 
05-08 20:30:41.389: E/AndroidRuntime(6272):  at glfg.gl.render.onSurfaceChanged(render.java:475) 
05-08 20:30:41.389: E/AndroidRuntime(6272):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1381) 
05-08 20:30:41.389: E/AndroidRuntime(6272):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1138) 
05-08 20:30:41.399: I/GLThread(6272): onPause tid=12 

、私は問題なく再び入ることができる

前にそれを閉じて、私は再びそれを起動しようとすると、戻るボタンと私の出口は、それがクラッシュした場合、アプリが完全に閉鎖されるだろうと想定していますしかしそうではないようです

+0

システムログからスタックダンプを含めないと、何が起こっているのか分からないでしょう。それから、もしあなたが最初にそれを調べるなら、あなたはその問題を理解するかもしれませんが、もしそうでなければ、あなたの投稿を編集して、誰かが助けるかもしれないように編集してください。 – mah

答えて

1

あなたのエラーはここにある:ライン180でglfg.gl.render.setverticesSquareで

05-08 20:30:41.389: E/AndroidRuntime(6272): java.lang.NullPointerException 
05-08 20:30:41.389: E/AndroidRuntime(6272):  at glfg.gl.render.setverticesSquare(render.java:180) 

はあなたのコードのこの部分ですか?私はその行を見て、どのオブジェクトがヌルであるかを調べるか、またはそれを調べるためにブレークポイントを使用するのが望ましいでしょう。

+0

ies render.setverticesSquareはonSurfaceChangedで呼び出されますが、エラーの原因となるものは何もありません.null参照はありません。なぜなら、onSurfaceChangedを最初に0に設定すると、頂点バッファとテクスチャを設定する関数を呼び出しますホームボタンが押されたときにゲームを再開することができます – Jose

+0

私は180行目をよく見ましたが、エラーであることがわかりました。条件付きのものがあれば、偽であり、いくつかの配列を初期化してから、次のように宣言された条件式で評価される変数: public static boolean Conditional = false; 私は静的変数は、その値を保持しているが、アプリケーションを閉じている – Jose

関連する問題