无法注销输入通道

时间:2013-03-17 01:09:34

标签: android runtimeexception

在我的一个市场应用程序中,我不时会看到一些来自野外的报告,并且无法确定它们被抛出的原因。在我的应用程序中,我没有做任何我认为不寻常的事情。有没有人有任何想法?

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)

我看到很多“注册输入频道失败”,但取消注册没有,因此是这个问题的原因。

我尝试过搜索,但只从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());
    }
}

0 个答案:

没有答案