Подтвердить что ты не робот

Не удалось прочитать дескрипторы файла входного канала из посылки

У меня возникла ошибка при запуске тестов в моем приложении на платформе 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? Как вы думаете, что это может быть?

4b9b3361

Ответ 1

Это иногда происходит, когда я открываю, завершаю и снова открываю приложение. Проблема в том, что я забыл запустить очистку в SoundManager:

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

У вас должно быть что-то еще в памяти, которое вы сейчас запускаете дважды.

Ответ 2

Это исключение может возникнуть из-за того, что для чтения данных из процесса filediscriptor отличается, поскольку этот файл был открыт через другой процесс. Если разные процессы пытаются прочитать filediscriptor, принадлежащий другому процессу, тогда при чтении он будет генерировать исключение.