0

我试图使我的游戏多任务友好,但是每当屏幕关闭并重新打开,或者游戏被导航离开和返回时,我都会得到一个指向这部分代码的空指针异常:

GLES20.glUniformMatrix3fv(mTextureMatrixHandle, 1, false, render.mTexMatrix, 0);

除了 super.onResume(); 我什么都没有 和 mGLSurfaceView.onResume(); onResume() 方法和 onPause() 方法相同,除了 onPause 而不是 onResume。知道如何解决这个问题吗?

4

1 回答 1

0

您必须确保在重新启动活动时重新创建对象。这些变量在哪里初始化?这种错误的典型情况是当您将对象存储在全局变量中时。再次创建活动时,它们为空。

所以:检查 mTextureMatrixHandle、render 或 render.mTexMatrix 中的哪一个为空。如果它为空,则重新创建它。

通常,您不应依赖在活动创建时恢复的任何数据。所以不要使用全局变量,只依赖通过意图传递的数据。如果你真的想使用全局数据,你应该知道它可能会被重置,并在需要时重新创建它。

于 2012-10-02T21:33:35.597 回答