【问题标题】:Could not read input channel file descriptors from parcel crash report无法从包裹崩溃报告中读取输入通道文件描述符
【发布时间】:2015-05-28 16:29:11
【问题描述】:

我从我的 android 应用程序不断收到此崩溃报告。我不明白这是什么错误?这可能是什么原因?

java.lang.RuntimeException: Could not read input channel file descriptors from parcel.
at android.view.InputChannel.nativeReadFromParcel(Native Method)
at android.view.InputChannel.readFromParcel(InputChannel.java:148)
at android.view.InputChannel$1.createFromParcel(InputChannel.java:39)
at android.view.InputChannel$1.createFromParcel(InputChannel.java:36)
at com.android.internal.view.InputBindResult.<init>(InputBindResult.java:62)
at com.android.internal.view.InputBindResult$1.createFromParcel(InputBindResult.java:102)
at com.android.internal.view.InputBindResult$1.createFromParcel(InputBindResult.java:99)
at com.android.internal.view.IInputMethodManager$Stub$Proxy.startInput(IInputMethodManager.java:709)
at android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:1296)
at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1418)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3648)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

    标签: android


    【解决方案1】:

    我有同样的错误。在我清除所有内存泄漏后,它完全消失了。也消失了java.lang.IllegalStateException: eglMakeCurrent failed EGL_BAD_ALLOC。 Java 中的内存泄漏意味着Garbage Colector 无法清理对象——存在一些交叉引用。我知道通常有一些原因:

    1. 具有复杂结构的类的一些未清除对象(如在父级及其子级上具有交叉引用的树)。所以使用后你应该调用closedestroy或其他方法。

    2. 您的 Activity 类中的非静态内部(匿名)类 - 据我了解,内部类始终包含对其父级的引用,因此在完成内部类的 Activity 引用后仍然存在并且 GC 无法清理它们。如果您在 Activity 中需要它,请始终创建静态类(当您想使用 YourActivity 对象的引用时,请使用 WeakReference &lt;YourActivty&gt; - 它不会对 GC 产生影响,并且不会出现内存泄漏,但您应该始终检查weakReference.get() != null)。

    3. 在您的 Activity 类字段中引用内部视图。最好不要使用它们并始终从findViewByID 获取引用,但是您可以在onDestroy() 方法中将所有这些字段设置为null。

    为了搜索一些泄漏,我在 Eclipse 中使用了内存分析透视图。

    附:对不起我的英语。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-13
      • 2011-08-16
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      相关资源
      最近更新 更多