far*_*ich 12 android opengl-es
我的程序在两个之间切换Activities,每个程序都GLSurfaceView使用VBO扩展派生.在两个活动之间来回切换几次后,程序崩溃并抛出以下异常.每次有上下文切换时,都会删除VBO缓冲区,调用onStop(),并且下一个Activity的新实例GLSurfaceView会膨胀.我重构程序上只有一个运行GLSurfaceView和Activity,程序似乎没有发生任何事件运行.仅使用多边形和颜色,没有纹理.这是损害:
Java.lang.RuntimeException: createContext failed: EGL_BAD_ALLOC
at android.opengl.GLSurfaceView$EglHelper
.throwEglException(GLSurfaceView.java:1079)
at android.opengl.GLSurfaceView$EglHelper
.throwEglException(GLSurfaceView.java:1071)
at android.opengl.GLSurfaceView$EglHelper
.start(GLSurfaceView.java:927)
at android.opengl.GLSurfaceView$GLThread
.guardedRun(GLSurfaceView.java:1248)
at android.opengl.GLSurfaceView$GLThread
.run(GLSurfaceView.java:1118)
Run Code Online (Sandbox Code Playgroud)
从做一些互联网研究,这是一个公认的错误.那么如何进行损害控制呢?在正确的方向上轻推+200.
编辑:我解决了问题(我打算在视图上调用ONPAUSE()/ ONRESTART()).第一个接受任何关于+2的任何人的答案.
zen*_*hoy 18
令人讨厌我还不能发表评论,但我认为你的意思是onResume,而不是onRestart.您的活动可以暂停而不会被停止,这会导致onPause,但不会导致onRestart.
此图像(来自活动文档)非常好地显示了此活动生命周期:

简而言之,请记住将onPause和onResume传递给你的super和GLSurfaceView.
来自http://android-developers.blogspot.com/2009/04/introducing-glsurfaceview.html:
public class ClearActivity extends Activity {
... snip ...
@Override
protected void onPause() {
super.onPause();
mGLView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mGLView.onResume();
}
private GLSurfaceView mGLView;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21716 次 |
| 最近记录: |