【发布时间】:2011-06-30 01:55:20
【问题描述】:
我正在 Android 上编写游戏,这个问题让我很困惑。我覆盖了 onPause() 以使游戏能够在不再可见时将其数据保存到内部存储中。它可以正常工作,直到按回或按三四次。我得到了这个:
Thread [<1> main] (Suspended (exception NullPointerException))
Main.onPause() line: 127
Main(Activity).performPause() line: 3842
Instrumentation.callActivityOnPause(Activity) line: 1190
ActivityThread.performPauseActivity(ActivityThread$ActivityRecord, boolean, boolean) line: 3335
ActivityThread.performPauseActivity(IBinder, boolean, boolean) line: 3305
ActivityThread.handlePauseActivity(IBinder, boolean, boolean, int) line: 3288
ActivityThread.access$2500(ActivityThread, IBinder, boolean, boolean, int) line: 125
BinderProxy(ActivityThread$H).handleMessage(Message) line: 2044
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4627
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 868
ZygoteInit.main(String[]) line: 626
NativeStart.main(String[]) line: not available [native method]
调试器表示它对此感到震惊:
@Override
public void onPause() {
super.onPause();
Data data = game.writeProtoBuf(); // NullPointerException
try {
//IO stuff
writeProtoBuf 实际上并没有写任何东西,而只是一种检索游戏数据并将其放入 Data 对象的方法。调试器显示游戏为空,但是当我在关闭游戏之前可以正确地与游戏交互时,我看不出这是怎么可能的。 :/
【问题讨论】:
-
嗨,游戏对象是否有可能为空......因为如果您在
Data data = game.writeProtoBuf();中遇到异常,则表示游戏为空...... -
我们需要查看更多您的代码。
标签: android