睡覺

2011-10-23 63 views
1

我知道這是我應該切換到的OpenGL ES 1.0的繪圖軟件之前已經學會了,但我一直無法找到關於這個問題的任何信息後,我的Android的OpenGL應用程序崩潰...睡覺

我打算如果沒有被觸摸了一會兒睡覺後的OpenGL應用程序崩潰......我不知道是否是因爲我不是卸紋理或頂點/顏色/材質/索引緩衝區它進入睡眠狀態之前......我真的不確定如何做到這一點,甚至如果它會幫助......可能有人指點我或告訴我一個快速指導,什麼都有被重新加載,破壞等規則?我真的很困惑......

我不知道它是否有幫助,但我的主類擴展了GLSurfaceView並實現了「Renderer」,它將onScreenCreated中的所有紋理和緩衝區對象加載並修正onSurfaceChanged 。在主要活動(這是主要類鏈接的地方)上覆蓋onResume和onPause調用onResume和onPause openGL表面命令...

任何線索可能是錯誤的將是非常有用的...我的遊戲引擎是一半編碼,但我擔心這樣的小故障將會停止我目前和未來的項目。

我使用的Froyo(機器人2.2)和OpenGL ES 1.0。從logcat的

錯誤打印出來:

3月10日至24日:13:41.988:ERROR/AndroidRuntime(9888):致命異常:GLThread 26

3月10日至24日:13:41.988:錯誤/ AndroidRuntime(9888):java.lang.IllegalThreadStateException:線程已經啓動。

3月10日至24日:13:41.988:ERROR/AndroidRuntime(9888):在java.lang.Thread.start(Thread.java:1322)

3月10日至24日:13:41.988:ERROR/AndroidRuntime(9888):at or.gl.m5.Screen.onSurfaceCreated(Screen.java:161)

10-24 03:13:41.988:ERROR/AndroidRuntime(9888):at android.opengl.GLSurfaceView $ GLThread .guardedRun(GLSurfaceView.java:1317)

3月10日至24日:13:41.988:ERROR/AndroidRuntime(9888):在android.opengl.GLSurfaceView $ GLThread.run(GLSurfaceView.java:1116)

回答

2

沒有看到一個堆棧跟蹤或什麼樣的異常,它拋出了它是一種很難說些什麼。但無論如何,我會大肆猜測它會崩潰,因爲您必須在恢復活動後重新加載紋理。一旦您的視圖轉到背景,您先前創建的紋理就會失效。

+0

我很想TP表現出一定的調試崩潰報告,但每次我嘗試調試我的OpenGL的工作只是顯示黑屏,我沒有得到任何有用的信息......對任何指針將是巨大的.. 。我使用eclipse作爲我的編譯器,並通過我的設備而不是模擬器進行測試。 (如果有幫助) 紋理應該在哪裏重新加載?我加載它們在「onCreateSurface」...這是不正確的?我需要在重新加載之前卸載它們嗎?對不起所有的問題,你的答覆,我真的不知道我應該做什麼。 – Kalisme

+1

請參閱使用日誌的機器人的logcat(無論是從Eclipse IDE的內部或從控制檯)。檢查級別ERROR的消息,否則將會擁擠。當你的應用程序崩潰時,應該在發生的地方打印出一個堆棧跟蹤。 – rgngl

+1

關於紋理,你不需要卸載它們。你只需要重新加載'onResume'。 – rgngl