Exception utan debug..

Diskussion i 'Frågor, support och diskussion' startad av 112, 19 jul 2010.

  1. 112

    112 Kid Droid Medlem

    Blev medlem:
    19 jun 2010
    Inlägg:
    83
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag har felsökt nu i några dagar och fick igång debugging igår. Så klart så fungerar min app när jag kör i debug mode men när jag kör normalt får jag "the application <app>(process <paket.app>) has stopped unexpectedly. Please try again.". Blir så trött på skiten..

    Vad är det för skillnad när man kör med och utan debug-mode förutom själva debuggingen?

    Det är en server-klient app med sockets och försöker skicka saker med object-streams, när jag skickar från klienten(telefonen) så kommer objetet till servern, men när servern skickar till klienten krashar klienten. Blä.
     
  2. Pain

    Pain Youth Droid Medlem

    Blev medlem:
    19 apr 2010
    Inlägg:
    135
    Mottagna gillanden:
    0

    MINA ENHETER

    Rent spontant känns det som du glömt allokera en (tillräckligt stor) buffer för värdet från servern eller att du missat att fånga felet (try-catch).

    Utan kodexempel är det inte ens lönt att försöka sig på en bättre gissning, då det kan vara praktiskt taget vad som. Allt från ett enkelt kodfel på server/klientsida till felaktigt format på server/klientsida.
     
  3. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    @112. Varför chansa när du kan få reda på svaret?

    Installera Log Collector från market.
    Kör klienten i telefonen, få den att krascha. Dra sedan igång Log collector och maila dig loggen. I den kommer du nog se en fint liten stacktrace som säger vart felet uppstår.

    Rent spontant skulle jag säga att det låter som att du har ett race kondition. Den största skillnaden när du kör i debugger är att allt går långsammare, och att du ev "steppar" tråden som i vanliga fall orsakar buggen. Troligen försöker du anropa något som i vanliga fall inte är satt, men som hinner sättas när du kör i debug.

    (En annan skillnad som påverkar dig är att när du debuggar så kör du troligen på ett felfritt och snabbt nätverk, i mobilen är det inte alltid garanterat att du får en uppkoppling, och om du får en kan du få fel i den. Kolla även om du sätter telefonen i något wake-mode eller inte)
     
  4. 112

    112 Kid Droid Medlem

    Blev medlem:
    19 jun 2010
    Inlägg:
    83
    Mottagna gillanden:
    0

    MINA ENHETER

    fick ut ett stacktrace nu..

    Kod:
    
    07-19 20:23:33.141: ERROR/AndroidRuntime(561): FATAL EXCEPTION: Thread-8
    07-19 20:23:33.141: ERROR/AndroidRuntime(561): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.view.ViewRoot.checkThread(ViewRoot.java:2802)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.view.ViewRoot.requestLayout(ViewRoot.java:594)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.view.View.requestLayout(View.java:8125)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.view.View.requestLayout(View.java:8125)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.view.View.requestLayout(View.java:8125)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.view.View.requestLayout(View.java:8125)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.view.View.requestLayout(View.java:8125)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.widget.ScrollView.requestLayout(ScrollView.java:1200)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.view.View.requestLayout(View.java:8125)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.widget.TextView.checkForResize(TextView.java:5320)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.widget.TextView.updateAfterEdit(TextView.java:4751)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.widget.TextView.handleTextChanged(TextView.java:6158)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:6316)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.text.SpannableStringBuilder.sendTextChange(SpannableStringBuilder.java:889)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:352)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:269)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:432)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.text.SpannableStringBuilder.append(SpannableStringBuilder.java:259)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.text.SpannableStringBuilder.append(SpannableStringBuilder.java:28)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.widget.TextView.append(TextView.java:2240)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at android.widget.TextView.append(TextView.java:2227)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at addChatMessage(ClientInterface.java:90)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at onDisconnect(ClientInterface.java:127)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at BasicNetwork.BasicClient.disconnect(BasicClient.java:34)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at BasicNetwork.BasicClient$1.run(BasicClient.java:65)
    07-19 20:23:33.141: ERROR/AndroidRuntime(561):     at java.lang.Thread.run(Thread.java:1096)
    
    
    Och det verkar fungera om jag kommenterar bort där den skriver ut meddelandet som skrivs ut i en TextView när ett fel inträffar. Konstigt..

    är väl en http://developer.android.com/reference/android/os/Handler.html jag måste använda då verkar det som, ska kolla på det nu
     
    Last edited: 19 jul 2010
  5. 112

    112 Kid Droid Medlem

    Blev medlem:
    19 jun 2010
    Inlägg:
    83
    Mottagna gillanden:
    0

    MINA ENHETER

    YES!! :D fick det att fungera. Äntligen.

    bytte
    Kod:
        private void addChatMessage(String msg){
        	TextView tv = (TextView) findViewById(R.id.Chat_output_txt);
        	tv.append(msg + "\n");
        }
    
    mot
    Kod:
        private void addChatMessage(final String msg){
        	final TextView tv = (TextView) findViewById(R.id.Chat_output_txt);
        	tv.post(new Runnable() { 
        	    public void run() { 
        	    	tv.append(msg + "\n");
        	    } 
        	}); 
        }
    
     
  6. Kaj

    Kaj Senior Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    1 768
    Mottagna gillanden:
    44

    MINA ENHETER

    Grattis! :)