我正在尝试使我的游戏多任务友好,但无论何时关闭屏幕并重新打开,或者游戏远离和返回,我都会得到一个空指针异常,指向代码的这一部分:
GLES20.glUniformMatrix3fv(mTextureMatrixHandle, 1, false, render.mTexMatrix, 0);
除了super.onResume()之外,我没有任何东西;和mGLSurfaceView.onResume();对于onResume()方法和onPause()相同,除了onPause而不是onResume。知道如何解决这个问题吗?
答案 0 :(得分:0)
您必须确保在再次启动活动时重新创建对象。那些变量在哪里初始化?此类错误的典型情况是将对象存储在全局变量中。再次创建活动时,它们为空。
因此:检查mTextureMatrixHandle,render或render.mTexMatrix中的哪一个为空。如果它为null,则重新创建它。
通常,您不应该依赖在创建活动时恢复的任何数据。所以不要使用全局变量,只依赖于通过intent传递的数据。如果您真的想要使用全局数据,您应该知道它可能会被重置,并在需要时重新创建它。