“IME 死亡”和 android.os.DeadObjectException

2024-01-04

我正在不同的设备上测试我的游戏,当用户更改音量(上/下)或按下菜单按钮或类似按钮时,其中一台(华硕 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(使用前将#替换为@)

“IME 死亡”和 android.os.DeadObjectException 的相关文章

随机推荐