Android Studio调试错误

时间:2017-10-25 08:31:56

标签: android

我有一个运行WebSocket的功能:

private void connectWebSocket() {
    URI uri;
    try {
        uri = new URI(WEBSOCKET_URL.concat(token.getString("token")));
    } catch (Exception e) {
        e.printStackTrace();
        return;
    }

    mWebSocketClient = new WebSocketClient(uri) {
        @Override
        public void onOpen(ServerHandshake serverHandshake) {
            Log.i("Websocket", "Opened");
        }

        @Override
        public void onMessage(String s) {
            final String message = s;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    try {
                        // TODO test it
                        JSONObject json_object = new JSONObject(message);
                        if (json_object.has("chat_message")) {
                            ChatFragment activeChat = null;
                            try {
                                activeChat = getChatFragment();
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                            JSONObject json_message = json_object.getJSONObject("chat_message");
                            if (activeChat != null && activeChat.getUserTo().getId() == json_message.getInt("user_from")) {
                                    activeChat.addMessage(json_message);
                            } else {
                                User user = getUserById(json_message.getInt("user_from"));
                                sendNotification(json_message, user == null ? json_message.getString("user_from") : user.toString());
                            }

                        } else if (json_object.has("notification")) {
                            JSONObject json_message = json_object.getJSONObject("notification");
                            sendNotification(json_message);
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });
        }

        @Override
        public void onClose(int i, String s, boolean b) {
            Log.i("Websocket", "Closed " + s);
        }

        @Override
        public void onError(Exception e) {
            Log.i("Websocket", "Error " + e.getMessage());
        }
    };
    mWebSocketClient.connect();
}

如果我在Android Studio上运行应用程序,它可以正常运行。

但是当我调试应用程序时会抛出错误

  

10-25 16:25:21.808 12040-12047 / com.cathedralsw.school A / art:   art / runtime / jdwp / jdwp_event.cc:661]检查失败:Thread :: Current()!=   GetDebugThread()(Thread :: Current()= 0x7f84616400,   GetDebugThread()= 0x7f84616400)预期的事件线程10-25   16:25:21.909 12040-12047 / com.cathedralsw.school A / art:   art / runtime / runtime.cc:422]运行时中止... 10-25 16:25:21.909   12040-12047 / com.cathedralsw.school A / art:art / runtime / runtime.cc:422]   中止线程:10-25 16:25:21.909 12040-12047 / com.cathedralsw.school   A / art:art / runtime / runtime.cc:422]“JDWP”prio = 5 tid = 4   WaitingForDebugger发送10-25 16:25:21.909   12040-12047 / com.cathedralsw.school A / art:art / runtime / runtime.cc:422]   | group =“”sCount = 0 dsCount = 0 obj = 0x12c3c940 self = 0x7f84616400 10-25   16:25:21.909 12040-12047 / com.cathedralsw.school A / art:   art / runtime / runtime.cc:422] | sysTid = 12047 nice = 0 cgrp = default   sched = 0/0 handle = 0x7f8be0b450 10-25 16:25:21.909   12040-12047 / com.cathedralsw.school A / art:art / runtime / runtime.cc:422]   | state = R schedstat =(145449425 3440734 128)utm = 12 stm = 2 core = 4   HZ = 100 10-25 16:25:21.909 12040-12047 / com.cathedralsw.school A / art:   art / runtime / runtime.cc:422] |堆栈= 0x7f8bd11000-0x7f8bd13000   stackSize = 1005KB 10-25 16:25:21.909 12040-12047 / com.cathedralsw.school   A / art:art / runtime / runtime.cc:422] |持有互斥锁=“中止锁定”   10-25 16:25:21.909 12040-12047 / com.cathedralsw.school A / art:   art / runtime / runtime.cc:422] native:#00 pc 000000000047a0a8   /system/lib64/libart.so   (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv + 220)   10-25 16:25:21.909 12040-12047 / com.cathedralsw.school A / art:   art / runtime / runtime.cc:422] native:#01 pc 000000000047a0a4   /system/lib64/libart.so   (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv + 216)   ...... ..

修改

问题是调试并在runOnUiThread中使用WebSocket(new Runnable(){...

1 个答案:

答案 0 :(得分:1)

解决!

在Android Studio设置中禁用即时运行 - >构建,执行,部署