2014-10-30 21 views
4

我不断收到来自我的Android app.I这个崩溃报告不明白这是什么错误输入通道的文件描述符?这可能是什么原因?无法读取从包裹崩溃报告

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) 

回答

8

我有同样的错误。清理所有内存泄漏后,它绝对消失了。也消失java.lang.IllegalStateException: eglMakeCurrent failed EGL_BAD_ALLOC。在Java内存泄漏是指Garbage Colector无法清除的对象 - 也有一些交叉引用。还有一些常常方面的原因,我知道:

  1. 结构复杂(如与父母及其子交叉引用树)类的一些未清除的对象。因此,使用,你应该叫closedestroy或一些其他方法之后。我的理解是,内部类总是包含对其父类的引用,所以在完成活动后,内部类的引用仍然存在,并且GC不能清除它们。如果你需要在活动,始终创建静态类(当你想使用refence到YourActivity对象,使用WeakReference <YourActivty> - 它不会使GC和内存泄漏不会出现SENCE,但你应该经常检查weakReference.get() != null) 。

  2. 引用内查看你的活动类字段。这是最好不要使用它们,总是从findViewByID得到一个参考,但你可以设置所有这字段设置为null在onDestroy()方法。

为了搜索一些泄漏,我在Eclipse中使用了Memory Analysis透视图。

P.S.对不起我的英语不好。