Absturz Ursache im Debug Modus

  • 7 Antworten
  • Neuester Beitrag
Diskutiere Absturz Ursache im Debug Modus im Android App Entwicklung im Bereich Betriebssysteme & Apps.
Z

zulu23

Neues Mitglied
Hallo zusammen,

Ich habe ein kleines Problem mit meiner Projekt..und zwar bin ich daran ein UPnP Device Finder zu Programmieren mit hilfe der CyberLink.lib...nun leider ist es so das mein Eclipse Emulator diese Suche nicht unterstütz oder so...auf jedenfall gibt er nichts raus wenn ich im Emulator die suche starte...d.h im LogCat steht nichts.
Aus diesem Grund habe ich mein Handy( Samsung 4.0.3) angehängt und den Debug modus aktiviert.
Wenn ich nun die App starte und dann die suche starte kommt folgendes im LogCat:
Code:
09-18 15:56:54.375: I/dalvikvm(25652): Turning on JNI app bug workarounds for target SDK version 10...
09-18 15:57:58.265: D/CLIPBOARD(25652): Hide Clipboard dialog at Starting input: finished by someone else... !
09-18 15:58:00.455: D/dalvikvm(25652): GC_CONCURRENT freed 364K, 5% free 8944K/9351K, paused 7ms+7ms
09-18 15:58:00.525: D/dalvikvm(25652): GC_CONCURRENT freed 558K, 7% free 8924K/9543K, paused 2ms+2ms
09-18 15:58:00.575: D/dalvikvm(25652): GC_CONCURRENT freed 511K, 7% free 8922K/9543K, paused 2ms+2ms
09-18 15:58:00.625: D/dalvikvm(25652): GC_CONCURRENT freed 491K, 7% free 8928K/9543K, paused 2ms+2ms
09-18 15:58:00.675: D/dalvikvm(25652): GC_CONCURRENT freed 520K, 7% free 8920K/9543K, paused 2ms+2ms
09-18 15:58:00.710: D/dalvikvm(25652): GC_CONCURRENT freed 486K, 7% free 8935K/9543K, paused 1ms+1ms
09-18 15:58:00.720: D/AndroidRuntime(25652): Shutting down VM
09-18 15:58:00.720: W/dalvikvm(25652): threadid=1: thread exiting with uncaught exception (group=0x40c321f8)
09-18 15:58:00.720: E/AndroidRuntime(25652): FATAL EXCEPTION: main
09-18 15:58:00.720: E/AndroidRuntime(25652): java.lang.IllegalStateException: Could not execute method of the activity
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.view.View$1.onClick(View.java:3069)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.view.View.performClick(View.java:3591)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.view.View$PerformClick.run(View.java:14263)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.os.Handler.handleCallback(Handler.java:605)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.os.Looper.loop(Looper.java:137)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.app.ActivityThread.main(ActivityThread.java:4507)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at java.lang.reflect.Method.invoke(Method.java:511)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at dalvik.system.NativeStart.main(Native Method)
09-18 15:58:00.720: E/AndroidRuntime(25652): Caused by: java.lang.reflect.InvocationTargetException
09-18 15:58:00.720: E/AndroidRuntime(25652):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at java.lang.reflect.Method.invoke(Method.java:511)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.view.View$1.onClick(View.java:3064)
09-18 15:58:00.720: E/AndroidRuntime(25652):     ... 11 more
09-18 15:58:00.720: E/AndroidRuntime(25652): Caused by: android.os.NetworkOnMainThreadException
09-18 15:58:00.720: E/AndroidRuntime(25652):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at java.net.InetAddress.getHostByAddrImpl(InetAddress.java:440)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at java.net.InetAddress.getHostName(InetAddress.java:313)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at org.cybergarage.upnp.ssdp.HTTPUSocket.post(HTTPUSocket.java:202)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at org.cybergarage.upnp.ssdp.SSDPSearchResponseSocket.post(SSDPSearchResponseSocket.java:116)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at org.cybergarage.upnp.ssdp.SSDPSearchResponseSocketList.post(SSDPSearchResponseSocketList.java:158)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at org.cybergarage.upnp.ControlPoint.search(ControlPoint.java:542)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at org.cybergarage.upnp.ControlPoint.start(ControlPoint.java:867)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at org.cybergarage.upnp.ControlPoint.start(ControlPoint.java:897)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at ro.et.cybupnp.MainActivity.startControlPoint(MainActivity.java:83)
09-18 15:58:00.720: E/AndroidRuntime(25652):     at ro.et.cybupnp.MainActivity.onClickButton1(MainActivity.java:128)
09-18 15:58:00.720: E/AndroidRuntime(25652):     ... 14 more
09-18 15:58:14.355: D/dalvikvm(25652): GC_CONCURRENT freed 361K, 7% free 8959K/9543K, paused 2ms+3ms
09-18 15:58:14.700: D/DeviceNotify(25652): Device Notify Received: uuid:TCM3511-11D-X-00419::upnp:rootdevice
09-18 15:58:14.755: D/DeviceNotify(25652): Device Notify Received: uuid:TCM3511-11D-X-00419::upnp:rootdevice
09-18 15:58:14.780: D/DeviceNotify(25652): Device Notify Received: uuid:TCM3511-11D-X-00419
09-18 15:58:14.800: D/DeviceNotify(25652): Device Notify Received: uuid:TCM3511-11D-X-00419
09-18 15:58:14.815: D/DeviceNotify(25652): Device Notify Received: uuid:TCM3511-11D-X-00419::urn:schemas-upnp-org:device:Basic:1
09-18 15:58:14.855: D/dalvikvm(25652): GC_CONCURRENT freed 331K, 6% free 9012K/9543K, paused 1ms+2ms
09-18 15:58:14.855: D/DeviceNotify(25652): Device Notify Received: uuid:TCM3511-11D-X-00419::urn:schemas-upnp-org:device:Basic:1
09-18 15:58:14.870: D/DeviceNotify(25652): Device Notify Received: uuid:TCM3511-11D-X-00419::urn:acti.com:service:BasicService:1
09-18 15:58:14.875: D/DeviceNotify(25652): Device Notify Received: uuid:TCM3511-11D-X-00419::urn:acti.com:service:BasicService:1
09-18 15:58:26.335: I/Process(25652): Sending signal. PID: 25652 SIG: 9
Irgendwie startet er die suche und sendet den Suchantrag aber die App bleibt dann irgendwie hängen...in der Zeit in der das handy noch abwartet bis es die App anhält kommen dann antworten der UPnP Gerät aber ich kann sie nicht mehr auswerten weil die APP nach kurzer hängezeit angehalten wird.

Kann vielleicht einer von euch ausfindig machen warum die APP sich selber aufhängt mit dem LogCat auszug? Oder einfach ein Anhaltspunkt woran es liegen könnte? Ich habe leider noch nicht viel Erfahrung mit dem LogCat auswerten...

Besten dak für eure hilfe!

Gruss

zulu23
 
R

Raidri

Ambitioniertes Mitglied
Hi,

pack das senden des Suchantrags in einen AsyncTask oder einen Thread. Android verhindert solche calls im MainThread, weil er da durch blockiert werden könnte. Man kann das zwar auch umgehen, aber lagere den Call lieber aus.
 
Z

zulu23

Neues Mitglied
hey Raidri,

Danke für den wertvollen Tip!
So läuft das ganz ohne Probleme durch...nur frage ich mich warum das im Emulator nicht läuft?
Gibt es den im Emulator irgend welche Einschränkungen?

gruss

zulu23
 
S

swordi

Lexikon
weil du im emulator wahrscheinlich eine andere android version hast.

networkonmainthreadexception gibts erst seit ich glaub 3.0
 
Z

zulu23

Neues Mitglied
Ist es indemfall auch notwendig das die App über min. API Lev.11 verfügt oder nur der Emulator?

Ich habe meine APP auf 2.3.3 aufgebaut...

Besten dank für eure Hilfe

Gruss

zulu23
 
R

Raidri

Ambitioniertes Mitglied
Die App muss nicht über die SDK Version >= 11 verfügen. Nun kommt es drauf an wofür du die App nutzen willst. Nur für dich und dein Handy oder eben auch im Market vertreiben?. Dann solltest du alle Funktionen die irgendwas mit Network calls zu tun haben in einen eigenen Thread bzw. AsyncTask auslagern. Ansonsten werden die Nutzer mit neueren Versionen andauernd einen crash erhalten..

AsyncTask | Android Developers

Ansonsten könntest du dieses Snippet in deinen Sourcecode übernehmen, wobei ich persönlich davon nichts halte.

Code:
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Gruß
Raidri
 
Z

zulu23

Neues Mitglied
also ich habe jetzt einen Emulator mit API15 (gleich wie Handy)gemacht, wenn ich nun meine APP starte kann ich UPnP Devices finden aber leider nicht so viele wie mit dem echten Endgerät :huh:
Einige Geräte (immer die selben) scheinen nicht darauf zureagieren...
Was aber auch nicht geht mit dem Emulator ist z.b. die Abfrage:
Code:
ConnectivityManager myConnManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
                 NetworkInfo myNetworkInfo = myConnManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
                WifiManager myWifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
                WifiInfo myWifiInfo = myWifiManager.getConnectionInfo();
Ich frag die Neztwerk-Abfrage mittels Thread ab...
Ist das so nicht möglich mit dem Emulator?

Gruss
zulu23