报错:Could not read input channel file descriptors from parcel


个人在开发过程中遇到此bug,查找了一些资料,网友们说可以从以下几个方面,检查自己的代码

  • RemoteView中添加的图片太大了,超过40K会报这个异常
  • Intent传递的数据太大了超过1M也会报这个错误
  • FileDescripter太多而且没有关闭,looper太多没有quit。
  • 试试在AndroidManefest.xml中对当前Activity配置
    configchange=“orientation|keyboardHidden”强制在Activity横竖屏切换的时候不重新onCreate。

如果是代码问题,那么崩溃是必现的,个人首先打印了当前应用的日志,看运行至何处崩溃,查看对应的类,我发现自己死循环的启用分线程(服务器异常,没有处理,不断调用重启IM代码,造成死循环),造成系统内存不足导致以下异常,个人解决方法是,当检测服务器连接不上,则不重启IM,避免死循环,即解决

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.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:690)

at android.view.ViewRootImpl.setView(ViewRootImpl.java:502)

at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)

at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)

at android.widget.Toast$TN.handleShow(Toast.java:405)

at android.widget.Toast$TN$1.run(Toast.java:313)

at android.os.Handler.handleCallback(Handler.java:733)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:136)

at android.app.ActivityThread.main(ActivityThread.java:5017)

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:779)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)

at dalvik.system.NativeStart.main(Native Method)

    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">

个人在开发过程中遇到此bug,查找了一些资料,网友们说可以从以下几个方面,检查自己的代码

  • RemoteView中添加的图片太大了,超过40K会报这个异常
  • Intent传递的数据太大了超过1M也会报这个错误
  • FileDescripter太多而且没有关闭,looper太多没有quit。
  • 试试在AndroidManefest.xml中对当前Activity配置
    configchange=“orientation|keyboardHidden”强制在Activity横竖屏切换的时候不重新onCreate。

如果是代码问题,那么崩溃是必现的,个人首先打印了当前应用的日志,看运行至何处崩溃,查看对应的类,我发现自己死循环的启用分线程(服务器异常,没有处理,不断调用重启IM代码,造成死循环),造成系统内存不足导致以下异常,个人解决方法是,当检测服务器连接不上,则不重启IM,避免死循环,即解决

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.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:690)

at android.view.ViewRootImpl.setView(ViewRootImpl.java:502)

at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)

at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)

at android.widget.Toast$TN.handleShow(Toast.java:405)

at android.widget.Toast$TN$1.run(Toast.java:313)

at android.os.Handler.handleCallback(Handler.java:733)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:136)

at android.app.ActivityThread.main(ActivityThread.java:5017)

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:779)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)

at dalvik.system.NativeStart.main(Native Method)

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">

猜你喜欢

转载自blog.csdn.net/hizhangyuping/article/details/80777114
今日推荐