我从我的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)
答案 0 :(得分:9)
我有同样的错误。在我清理了所有内存泄漏后,它完全消失了。也消失java.lang.IllegalStateException: eglMakeCurrent failed EGL_BAD_ALLOC
。 Java中的内存泄漏意味着Garbage Colector无法清除对象 - 有一些交叉引用。我知道有一些常见的原因:
一些具有复杂结构的类的未清除对象(如父级及其子级上具有交叉引用的树)。因此,在使用之后,您应该拨打close
,destroy
或其他方法。
Activity类中的Unstatic内部(匿名)类 - 据我所知,内部类总是包含对其父类的引用,因此在完成活动后,内部类的引用仍然存在且GC无法清除它们。如果你在Activity中需要它,总是创建静态类(当你想对YourActivity
对象使用refence时,使用WeakReference <YourActivty>
- 它不会对GC产生影响并且不会出现内存泄漏,但是你应该经常检查weakReference.get() != null
)。
在“活动”类字段中引用内部视图。最好不要使用它们并始终从findViewByID
获取引用,但您可以在onDestroy()
方法中将所有这些字段设置为空。
为了搜索一些泄漏,我在Eclipse中使用了Memory Analysis透视图。
P.S。抱歉我的英文。