无法从parcel读取输入通道文件描述符

时间:2012-03-06 11:21:16

标签: java android

我在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:135)
at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:523)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:481)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
at android.view.Window$LocalWindowManager.addView(Window.java:537)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2507)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1986)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:803)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570)
at dalvik.system.NativeStart.main(Native Method)

我不知道,但我认为这可能是Android平台的错误?你觉得它可以是什么?

2 个答案:

答案 0 :(得分:4)

当我打开,退出并重新打开应用程序时,有时会发生这种情况。我遇到的问题是我忘了在SoundManager上运行清理:

public static void cleanup() {
     mSoundPool.release();
     mSoundPool = null;
     mSoundPoolMap.clear();
    mAudioManager.unloadSoundEffects();
    _instance = null;
}

你必须在内存中运行一些现在已经运行两次的东西。

答案 1 :(得分:2)

这个异常的到来可能是因为,因为从该文件通过另一个进程打开,从filesiscriptor进程读取数据是不同的。如果不同的进程尝试读取属于另一个进程的filediscriptor,那么在读取它时会抛出异常。 / p>