2014-10-30 39 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.對不起我的英語不好。