私のマーケットプレイス アプリの 1 つで、これらのレポートがときどき出回っていますが、なぜスローされているのか特定できません。私は自分のアプリで異常だと思うことは何もしていません。誰にもアイデアはありますか?
java.lang.RuntimeException: Failed to unregister input channel. status=-22
at android.view.InputQueue.nativeUnregisterInputChannel(Native Method)
at android.view.InputQueue.unregisterInputChannel(InputQueue.java:119)
at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:2471)
at android.view.ViewRootImpl.doDie(ViewRootImpl.java:4030)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4517)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
at dalvik.system.NativeStart.main(Native Method)
「入力チャネルの登録に失敗しました」のヒットがたくさん見られますが、 unregisterのヒットはありません。したがって、この質問の理由です。
検索してみましたが、例外の発生元として AOSP ツリーからこれだけを思いつきました:
from: aosp-frameworks-base / core / jni / android_view_InputQueue.cpp
static void android_view_InputQueue_nativeUnregisterInputChannel(JNIEnv* env, jclass clazz,
jobject inputChannelObj) {
status_t status = gNativeInputQueue.unregisterInputChannel(env, inputChannelObj);
if (status) {
String8 message;
message.appendFormat("Failed to unregister input channel. status=%d", status); <-- POSSIBLY THROWING THIS EXCEPTION
jniThrowRuntimeException(env, message.string());
}
}