我正在不同的设备上测试我的游戏,当用户更改音量(上/下)或按下菜单按钮或类似按钮时,其中一台(华硕 Garmin A10)会随机崩溃(3/5 次)。这可能是本地崩溃,因为我没有收到 ACRA logcat(手机离我很远,我只是使用 ACRA 进行远程调试)。用户正在告诉我发生了什么。
在我的 HTC 上,我只有一个烦人的警告,但游戏运行良好,没有任何反应。这是警告:
10-31 19:52:29.547: W/InputMethodManager(8441): IME 死了: com.android.inputmethod.latin/.LatinIME 删除: KeyEvent{action=0 code=25 Repeat=0 meta=0 scancode=114 mFlags= 8}
10-31 19:52:29.547: W/InputMethodManager(8441): android.os.DeadObjectException
10-31 19:52:29.547:W/InputMethodManager(8441):在 android.os.BinderProxy.transact(本机方法)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 com.android.internal.view.IInputMethodSession$Stub$Proxy.dispatchKeyEvent(IInputMethodSession.java:277)
10-31 19:52:29.547:W/InputMethodManager(8441):在 android.view.inputmethod.InputMethodManager.dispatchKeyEvent(InputMethodManager.java:1344)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 android.view.ViewRoot.deliverKeyEvent(ViewRoot.java:2426)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 android.view.ViewRoot.handleMessage(ViewRoot.java:1741)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 android.os.Handler.dispatchMessage(Handler.java:99)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 android.os.Looper.loop(Looper.java:123)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 android.app.ActivityThread.main(ActivityThread.java:4627)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 java.lang.reflect.Method.invokeNative(本机方法)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 java.lang.reflect.Method.invoke(Method.java:521)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-31 19:52:29.547: W/InputMethodManager(8441): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-31 19:52:29.547:W/InputMethodManager(8441):在dalvik.system.NativeStart.main(本机方法)
10-31 19:52:29.707: W/InputMethodManager(8441): IME 死了: com.android.inputmethod.latin/.LatinIME 删除: KeyEvent{action=1 code=25 Repeat=0 meta=0 scancode=114 mFlags= 8}
10-31 19:52:29.707: W/InputMethodManager(8441): android.os.DeadObjectException
10-31 19:52:29.707:W/InputMethodManager(8441):在 android.os.BinderProxy.transact(本机方法)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 com.android.internal.view.IInputMethodSession$Stub$Proxy.dispatchKeyEvent(IInputMethodSession.java:277)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 android.view.inputmethod.InputMethodManager.dispatchKeyEvent(InputMethodManager.java:1344)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 android.view.ViewRoot.deliverKeyEvent(ViewRoot.java:2426)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 android.view.ViewRoot.handleMessage(ViewRoot.java:1741)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 android.os.Handler.dispatchMessage(Handler.java:99)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 android.os.Looper.loop(Looper.java:123)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 android.app.ActivityThread.main(ActivityThread.java:4627)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 java.lang.reflect.Method.invokeNative(本机方法)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 java.lang.reflect.Method.invoke(Method.java:521)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-31 19:52:29.707: W/InputMethodManager(8441): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-31 19:52:29.707:W/InputMethodManager(8441):在dalvik.system.NativeStart.main(本机方法)
例如,每次我使用音量按钮时都会发生这种警告。
我使用 AndEngine 作为游戏的 2D 引擎。
我想那里出了问题,但我无法应对。我该如何处理这个问题?有什么建议吗?
看起来,当 UI 在 IME 被终止之前没有机会处理所有按键事件时,就会引发异常。不知道为什么它会在一台设备上崩溃,但不会在另一台设备上崩溃。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)