Looper Could not create wake pip

16142 단어 create
로그 인쇄
A/Looper(31455): Could not create wake pipe. errno=24

..

A/Looper(1960): Could not create wake pipe. errno=24

A/libc(1960): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)

..

A/Looper(16848): Could not create wake pipe. errno=24

앱 날아간다.
 
질문:
Native Looper 초기화 실패
 
로그 및 APP 작업을 기준으로 Looper를 찾습니다.preare();나타난 곳
 
    public static void showToast(final String toast, final int showTimeFlag, final Context context)

    {

        new Thread(new Runnable()

        {

            @Override

            public void run()

            {

                Looper.prepare();

                Toast.makeText(context, toast, showTimeFlag).show();

                Looper.loop();

            }

        }).start();

    }

 
수정:
    public static void showToast(final String toast, final int showTimeFlag, final Context context)

    {

        new Thread()

        {

            public void run()

            {

                System.out.println("Start Looper...");

                // Prepare looper

                Looper.prepare();



                // Register Queue listener hook

                MessageQueue queue = Looper.myQueue();

                queue.addIdleHandler(new IdleHandler()

                {

                    int    mReqCount    = 0;



                    @Override

                    public boolean queueIdle()

                    {

                        if (++mReqCount == 2)

                        {

                            // Quit looper

                            System.out.println("Looper.myLooper().quit()");

                            Looper.myLooper().quit();

                            return false;

                        } else

                            return true;

                    }

                });



                // Show Toast- will be called when Looper.loop() starts

                Toast.makeText(context, toast, showTimeFlag).show();

                // Start looping Message Queue- Blocking call

                Looper.loop();

                System.out.println("It appears after Looper.myLooper().quit()");

            }

        }.start();

    }

 
 
and then got this log:
W/MessageQueue(26006): Handler (android.os.Handler) {42771e28} sending message to a Handler on a dead thread

W/MessageQueue(26006): java.lang.RuntimeException: Handler (android.os.Handler) {42771e28} sending message to a Handler on a dead thread

W/MessageQueue(26006):     at android.os.MessageQueue.enqueueMessage(MessageQueue.java:196)

W/MessageQueue(26006):     at android.os.Handler.sendMessageAtTime(Handler.java:473)

W/MessageQueue(26006):     at android.os.Handler.sendMessageDelayed(Handler.java:446)

W/MessageQueue(26006):     at android.os.Handler.post(Handler.java:263)

W/MessageQueue(26006):     at android.widget.Toast$TN.hide(Toast.java:358)

W/MessageQueue(26006):     at android.app.ITransientNotification$Stub.onTransact(ITransientNotification.java:55)

W/MessageQueue(26006):     at android.os.Binder.execTransact(Binder.java:338)

W/MessageQueue(26006):     at dalvik.system.NativeStart.run(Native Method)





W/MessageQueue(26006): Handler (android.os.Handler) {42853888} sending message to a Handler on a dead thread

W/MessageQueue(26006): java.lang.RuntimeException: Handler (android.os.Handler) {42853888} sending message to a Handler on a dead thread

W/MessageQueue(26006):     at android.os.MessageQueue.enqueueMessage(MessageQueue.java:196)

W/MessageQueue(26006):     at android.os.Handler.sendMessageAtTime(Handler.java:473)

W/MessageQueue(26006):     at android.os.Handler.sendMessageDelayed(Handler.java:446)

W/MessageQueue(26006):     at android.os.Handler.post(Handler.java:263)

W/MessageQueue(26006):     at android.widget.Toast$TN.hide(Toast.java:358)

W/MessageQueue(26006):     at android.app.ITransientNotification$Stub.onTransact(ITransientNotification.java:55)

W/MessageQueue(26006):     at android.os.Binder.execTransact(Binder.java:338)

W/MessageQueue(26006):     at dalvik.system.NativeStart.run(Native Method)

I/System.out(26006): Looper.myLooper().quit()

I/System.out(26006): It appears after Looper.myLooper().quit()

E/InputChannel-JNI(26006): Error 24 dup receive pipe fd 775.

E/InputChannel-JNI(26006): Error 24 dup send pipe fd 1022.

W/MessageQueue(26006): Handler (android.os.Handler) {426c8ba0} sending message to a Handler on a dead thread

W/MessageQueue(26006): java.lang.RuntimeException: Handler (android.os.Handler) {426c8ba0} sending message to a Handler on a dead thread

W/MessageQueue(26006):     at android.os.MessageQueue.enqueueMessage(MessageQueue.java:196)

W/MessageQueue(26006):     at android.os.Handler.sendMessageAtTime(Handler.java:473)

W/MessageQueue(26006):     at android.os.Handler.sendMessageDelayed(Handler.java:446)

W/MessageQueue(26006):     at android.os.Handler.post(Handler.java:263)

W/MessageQueue(26006):     at android.widget.Toast$TN.hide(Toast.java:358)

W/MessageQueue(26006):     at android.app.ITransientNotification$Stub.onTransact(ITransientNotification.java:55)

W/MessageQueue(26006):     at android.os.Binder.execTransact(Binder.java:338)

W/MessageQueue(26006):     at dalvik.system.NativeStart.run(Native Method)

E/InputChannel-JNI(26006): Error 24 dup receive pipe fd 775.

E/InputChannel-JNI(26006): Error 24 dup send pipe fd 1022.

E/InputChannel-JNI(26006): Error 24 dup receive pipe fd 775.

E/InputChannel-JNI(26006): Error 24 dup send pipe fd 1022.

E/InputChannel-JNI(26006): Error 24 dup receive pipe fd 775.

E/InputChannel-JNI(26006): Error 24 dup send pipe fd 1022.

W/dalvikvm(26006): threadid=149: thread exiting with uncaught exception (group=0x40aa4390)

E/AndroidRuntime(26006): FATAL EXCEPTION: Thread-3671

E/AndroidRuntime(26006): java.lang.RuntimeException: Could not read input channel file descriptors from parcel.

E/AndroidRuntime(26006):     at android.view.InputChannel.nativeReadFromParcel(Native Method)

E/AndroidRuntime(26006):     at android.view.InputChannel.readFromParcel(InputChannel.java:135)

E/AndroidRuntime(26006):     at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:541)

E/AndroidRuntime(26006):     at android.view.ViewRootImpl.setView(ViewRootImpl.java:488)

E/AndroidRuntime(26006):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:305)

E/AndroidRuntime(26006):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)

E/AndroidRuntime(26006):     at android.widget.Toast$TN.handleShow(Toast.java:386)

E/AndroidRuntime(26006):     at android.widget.Toast$TN$1.run(Toast.java:304)

E/AndroidRuntime(26006):     at android.os.Handler.handleCallback(Handler.java:605)

E/AndroidRuntime(26006):     at android.os.Handler.dispatchMessage(Handler.java:92)

E/AndroidRuntime(26006):     at android.os.Looper.loop(Looper.java:137)

E/AndroidRuntime(26006):     at com.dhzwan.shapp.utility.Utils$3.run(Utils.java:531)

W/dalvikvm(26006): threadid=150: thread exiting with uncaught exception (group=0x40aa4390)

좋은 웹페이지 즐겨찾기