2017-10-25 20 views
-1

Ich habe eine Funktion, um eine WebSocket auszuführen:Android Studio Debug Fehler

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(); 
} 

Wenn ich die App auf Android-Studio funktioniert es einwandfrei ausgeführt.

Aber wenn ich die App debuggen wirft Fehler

10-25 16: 25: 21,808 12.040-12.047/com.cathedralsw.school A/art: Kunst/runtime/JDWP/jdwp_event.cc: 661] Überprüfen fehlgeschlagen: Thread :: Current()! = GetDebugThread() (Thread :: Current() = 0x7f84616400, GetDebugThread() = 0x7f84616400) Erwartete Ereignis Thread 10-25 16: 25: 21.909 12040-12047/com.cathedralsw.school A/art: art/runtime/runtime.cc: 422] Laufzeit abbrechen ... 10-25 16: 25: 21.909 12040-12047/com.cathedralsw.school A/art: art/runtime /runtime.cc:422] Abor ting thread: 10-25 16: 25: 21.909 12040-12047/com.kathedrale.school A/art: art/runtime/runtime.cc: 422] "JDWP" prio = 5 tid = 4 WaitingForDebuggerSend 10-25 16 : 25: 21.909 12040-12047/com.kathedralsw.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.kathedrale.school A/art: art/runtime/runtime.cc: 422] | sysTid = 12047 nice = 0 cgrp = Standard sched = 0/0 handle = 0x7f8be0b450 10-25 16: 25: 21.909 12040-12047/com.kathedrale.school A/art: art/runtime/runtime.cc: 422] | state = R schedstat = (145449425 3440734 128) utm = 12 stm = 2 kern = 4 HZ = 100 10-25 16: 25: 21.909 12040-12047/com.kathedrale.school A/art: art/runtime/runtime .cc: 422] | stack = 0x7f8bd11000-0x7f8bd13000 stackSize = 1005KB 10-25 16: 25: 21.909 12040-12047/com.kathedrale.school A/art: art/runtime/runtime.cc: 422] | gehalten mutexes = "abort lock" 10-25 16: 25: 21.909 12040-12047/com.kathedrale.school A/art: art/rennzeit/runtime.cc: 422] nativ: # 00 pc 000000000047a0a8 /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv + 220) 10-25 16: 25: 12.040 bis 12.047 21,909/com.cathedralsw.school A/art: art/runtime/runtime.cc: 422] Nativ: # 01 pc 000000000047a0a4 /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv + 216) ... ..

EDIT:

Das Problem ist, das Debuggen und mit der WebSocket in runOnUiThread (neu Runnable() {...

Antwort

0

gelöst!

Deaktivieren Sie Instant Run in Android Studio Einstellungen -> Erstellen, Ausführen, Bereitstellung