java.lang.RuntimeException: Nie można otworzyć pary kanałów wejściowych

Testuję moją aplikację za pomocą trzech telefonów (działa andorid wersja: 4.1.2 - 4.0.4 - 2.3.6). Bez problemu wymieniają dane za pośrednictwem Bluetooth, dopóki błąd ten nie pojawi się w logcat, a telefon nie zostanie całkowicie wyłączony i ponownie uruchomiony. Zanim ten błąd się pojawi, wszystko działa doskonale.

Oto wyjście logcata w telefonie, które ulega awarii (ten z wersją 4.1.2):

05-29 12:11:36.887: E/InputTransport(2947): channel '418655a8 Toast' ~ Could not create socket pair.  errno=24
05-29 12:11:36.897: E/JavaBinder(2947): *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
05-29 12:11:36.897: E/JavaBinder(2947): java.lang.RuntimeException: Could not open input channel pair.  status=-24
05-29 12:11:36.897: E/JavaBinder(2947):     at android.view.InputChannel.nativeOpenInputChannelPair(Native Method)
05-29 12:11:36.897: E/JavaBinder(2947):     at android.view.InputChannel.openInputChannelPair(InputChannel.java:91)
05-29 12:11:36.897: E/JavaBinder(2947):     at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:2295)
05-29 12:11:36.897: E/JavaBinder(2947):     at com.android.server.wm.Session.add(Session.java:139)
05-29 12:11:36.897: E/JavaBinder(2947):     at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:70)
05-29 12:11:36.897: E/JavaBinder(2947):     at com.android.server.wm.Session.onTransact(Session.java:111)
05-29 12:11:36.897: E/JavaBinder(2947):     at android.os.Binder.execTransact(Binder.java:367)
05-29 12:11:36.897: E/JavaBinder(2947):     at dalvik.system.NativeStart.run(Native Method)
05-29 12:11:36.897: E/WindowManager(2947): Window Session Crash
05-29 12:11:36.897: E/WindowManager(2947): java.lang.RuntimeException: Could not open input channel pair.  status=-24
05-29 12:11:36.897: E/WindowManager(2947):  at android.view.InputChannel.nativeOpenInputChannelPair(Native Method)
05-29 12:11:36.897: E/WindowManager(2947):  at android.view.InputChannel.openInputChannelPair(InputChannel.java:91)
05-29 12:11:36.897: E/WindowManager(2947):  at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:2295)
05-29 12:11:36.897: E/WindowManager(2947):  at com.android.server.wm.Session.add(Session.java:139)
05-29 12:11:36.897: E/WindowManager(2947):  at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:70)
05-29 12:11:36.897: E/WindowManager(2947):  at com.android.server.wm.Session.onTransact(Session.java:111)
05-29 12:11:36.897: E/WindowManager(2947):  at android.os.Binder.execTransact(Binder.java:367)
05-29 12:11:36.897: E/WindowManager(2947):  at dalvik.system.NativeStart.run(Native Method)
05-29 12:11:36.907: D/AndroidRuntime(8234): Shutting down VM
05-29 12:11:36.907: W/dalvikvm(8234): threadid=1: thread exiting with uncaught exception (group=0x40abc300)
05-29 12:11:36.927: E/AndroidRuntime(8234): FATAL EXCEPTION: main
05-29 12:11:36.927: E/AndroidRuntime(8234): java.lang.RuntimeException: InputChannel is not initialized.
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.view.InputEventReceiver.nativeInit(Native Method)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.view.InputEventReceiver.<init>(InputEventReceiver.java:68)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.view.ViewRootImpl$WindowInputEventReceiver.<init>(ViewRootImpl.java:4221)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.view.ViewRootImpl.setView(ViewRootImpl.java:626)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:326)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:220)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.widget.Toast$TN.handleShow(Toast.java:391)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.widget.Toast$TN$1.run(Toast.java:309)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.os.Handler.handleCallback(Handler.java:615)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.os.Looper.loop(Looper.java:137)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at android.app.ActivityThread.main(ActivityThread.java:4931)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at java.lang.reflect.Method.invokeNative(Native Method)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at java.lang.reflect.Method.invoke(Method.java:511)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
05-29 12:11:36.927: E/AndroidRuntime(8234):     at dalvik.system.NativeStart.main(Native Method)
05-29 12:11:36.947: W/ActivityManager(2947):   Force finishing activity com.vittorio/.tabContainer.FloatyTab
05-29 12:11:36.967: E/IMemory(2947): binder=0x23b2708 transaction failed fd=-2147483647, size=0, err=-2147483646 (Unknown error: 2147483646)
05-29 12:11:36.967: E/IMemory(2947): cannot dup fd=-2147483647, size=0, err=-2147483646 (Bad file number)
05-29 12:11:36.967: E/IMemory(2947): cannot map BpMemoryHeap (binder=0x23b2708), size=0, fd=-1 (Bad file number)

Nie wiem, jak to mogło zostać uruchomione przez moją aplikację, nie ma nawet jednego wiersza w tym wyjściu błędu, który wskazuje na jedną z moich klas.

Również na moim S3 z Androidem v4.1.1 dostałem ten błąd i telefon uruchomił się ponownie po 80 minutach normalnej aktywności:

05-29 16:13:47.455: E/InputChannel-JNI(7490): Error 9 dup channel fd -2147483647.
05-29 16:13:47.455: D/AndroidRuntime(7490): Shutting down VM
05-29 16:13:47.455: W/dalvikvm(7490): threadid=1: thread exiting with uncaught exception (group=0x4101a2a0)
05-29 16:13:47.465: E/AndroidRuntime(7490): FATAL EXCEPTION: main
05-29 16:13:47.465: E/AndroidRuntime(7490): java.lang.RuntimeException: Could not read input channel file descriptors from parcel.
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.view.InputChannel.nativeReadFromParcel(Native Method)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.view.InputChannel.readFromParcel(InputChannel.java:135)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:523)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.view.ViewRootImpl.setView(ViewRootImpl.java:663)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:345)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:220)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.widget.Toast$TN.handleShow(Toast.java:431)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.widget.Toast$TN$1.run(Toast.java:348)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.os.Handler.handleCallback(Handler.java:615)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.os.Looper.loop(Looper.java:137)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at android.app.ActivityThread.main(ActivityThread.java:4898)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at java.lang.reflect.Method.invokeNative(Native Method)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at java.lang.reflect.Method.invoke(Method.java:511)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
05-29 16:13:47.465: E/AndroidRuntime(7490):     at dalvik.system.NativeStart.main(Native Method)

I znowu mój S3 zresetowany z tym samym błędem mojego Samsung S plus (v 4.1.2) po poprawnej pracy przez 3 godziny, oto dziennik:

05-30 14:11:59.455: E/InputTransport(2262): channel '422b4910 Toast' ~ Could not create socket pair.  errno=24
05-30 14:11:59.465: E/JavaBinder(2262): *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
05-30 14:11:59.465: E/JavaBinder(2262): java.lang.RuntimeException: Could not open input channel pair.  status=-24
05-30 14:11:59.465: E/JavaBinder(2262):     at android.view.InputChannel.nativeOpenInputChannelPair(Native Method)
05-30 14:11:59.465: E/JavaBinder(2262):     at android.view.InputChannel.openInputChannelPair(InputChannel.java:91)
05-30 14:11:59.465: E/JavaBinder(2262):     at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:2931)
05-30 14:11:59.465: E/JavaBinder(2262):     at com.android.server.wm.Session.add(Session.java:139)
05-30 14:11:59.465: E/JavaBinder(2262):     at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:70)
05-30 14:11:59.465: E/JavaBinder(2262):     at com.android.server.wm.Session.onTransact(Session.java:111)
05-30 14:11:59.465: E/JavaBinder(2262):     at android.os.Binder.execTransact(Binder.java:367)
05-30 14:11:59.465: E/JavaBinder(2262):     at dalvik.system.NativeStart.run(Native Method)
05-30 14:11:59.465: E/WindowManager(2262): Window Session Crash
05-30 14:11:59.465: E/WindowManager(2262): java.lang.RuntimeException: Could not open input channel pair.  status=-24
05-30 14:11:59.465: E/WindowManager(2262):  at android.view.InputChannel.nativeOpenInputChannelPair(Native Method)
05-30 14:11:59.465: E/WindowManager(2262):  at android.view.InputChannel.openInputChannelPair(InputChannel.java:91)
05-30 14:11:59.465: E/WindowManager(2262):  at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:2931)
05-30 14:11:59.465: E/WindowManager(2262):  at com.android.server.wm.Session.add(Session.java:139)
05-30 14:11:59.465: E/WindowManager(2262):  at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:70)
05-30 14:11:59.465: E/WindowManager(2262):  at com.android.server.wm.Session.onTransact(Session.java:111)
05-30 14:11:59.465: E/WindowManager(2262):  at android.os.Binder.execTransact(Binder.java:367)
05-30 14:11:59.465: E/WindowManager(2262):  at dalvik.system.NativeStart.run(Native Method)
05-30 14:11:59.470: D/AndroidRuntime(13879): Shutting down VM
05-30 14:11:59.470: W/dalvikvm(13879): threadid=1: thread exiting with uncaught exception (group=0x410c92a0)
05-30 14:11:59.475: E/AndroidRuntime(13879): FATAL EXCEPTION: main
05-30 14:11:59.475: E/AndroidRuntime(13879): java.lang.RuntimeException: InputChannel is not initialized.
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.view.InputEventReceiver.nativeInit(Native Method)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.view.InputEventReceiver.<init>(InputEventReceiver.java:68)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.view.ViewRootImpl$WindowInputEventReceiver.<init>(ViewRootImpl.java:4477)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.view.ViewRootImpl.setView(ViewRootImpl.java:738)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:345)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:220)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.widget.Toast$TN.handleShow(Toast.java:431)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.widget.Toast$TN$1.run(Toast.java:348)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.os.Handler.handleCallback(Handler.java:615)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.os.Looper.loop(Looper.java:137)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at android.app.ActivityThread.main(ActivityThread.java:4898)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at java.lang.reflect.Method.invokeNative(Native Method)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at java.lang.reflect.Method.invoke(Method.java:511)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
05-30 14:11:59.475: E/AndroidRuntime(13879):    at dalvik.system.NativeStart.main(Native Method)
05-30 14:11:59.515: E/IMemory(2262): cannot dup fd=1023, size=765952, err=0 (Too many open files)
05-30 14:11:59.515: E/IMemory(2262): cannot map BpMemoryHeap (binder=0x5efc9c38), size=765952, fd=-1 (Bad file number)
05-30 14:11:59.515: A/libc(2262): Fatal signal 11 (SIGSEGV) at 0x000075df (code=1), thread 4933 (Binder_9)
05-30 14:11:59.515: A/libc(2262): Unable to open connection to debuggerd: Too many open files
05-30 14:11:59.685: W/Sensors(24753): sensorservice died [0x40d75010]

questionAnswers(1)

yourAnswerToTheQuestion