Häufige Fehler: Ursachen und Lösungen [keine Diskussionen]

  • 3 Antworten
  • Letztes Antwortdatum
blackfire185

blackfire185

Stamm-User
40
Hallo,

da ich häufig hier im Forum mitlese und teilweise oft der gleichen Fehler gemacht werden, wollte ich hier mal ein Thema erstellen, in welchem diese Fehler genannt und behoben werden.

1. Internetverbindung im UI - Thread:

Es ist häufig der Fehler zu finden, dass man eine Verbindung zum Internet aufbaut und wenn man die App auf Gingerbread Geräten testet, läuft sie ohne Probleme, auf Geräten ab Android 3.0 gibt es einen Force Close. Dabei findet sich diese Meldung im Logcat:

Code:
...
Caused by: android.os.NetworkOnMainThreadException
...

Dies bedeutet, dass die Netzwerkoperation im UI-Thread durchgeführt wird. Dies sollte man nicht machen, denn wenn man in GPRS Netz unterwegs ist, reagiert die App -wenn die Internetoperation im UI Thread ausgeführt ist- sehr lange nicht, da diese darauf wartet, dass die Internetoperation fertiggestellt wird. Dauert dies länger als 5 Sekunden gibt es eine ANR Meldung.
Um dies zu verhindern, muss die Netzwerkoperation in einem separaten Thread durchgeführt werden.

Ab Android 3.0 ist es von Google "erzwungen", solche Vorgänge im Hintergrund durchzuführen, sonst gibt es eben den oben genannten Fehler


Gut eignen sich hierbei eine Async Task. Diese läuft im Hintergrund und wenn sie fertig ist (d.h. die Netzwerkoperation erfolgreich abgeschlossen wurde) kann sie auf die UI-Elemente zugreifen und diese aktualisieren.



Dies ist der Anfang, es wäre schön, wenn andere, die häufige Fehler sehen, die Liste ergänzen könnten (bitte mit fortlaufender Nummerierung).

Ich hoffe, dieses Thema hilft manchen und es wäre toll, wenn das Thema ein Sticky werden würde.
 
  • Danke
Reaktionen: findudusfi und Madlip
@tbi113
Erstelle bitte für deine Frage einen eigenen Thread. In diesem soll es nur Lösungsvorschläge für häufige Fehler geben.

@alle
Ich pinne den Thread vorläufig mal an. Führt hier bitte keine Diskussionen. Sollte eine Sammlung zustande kommen, werde ich es gepinnt lassen.
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: findudusfi, MrPermanent und blackfire185
Ganz was blödes:

Ich habe ein kleines Tool (das per CWM installierbarem zip verteilt wird) geschrieben, und bei funktierte es super. Ich habe dabei auf Funktionen der Busybox zugegriffen. Darum habe ich auch das busybox binary mit ins zip gepackt.

Bei den Usern funktionierte erst mal garnichts. Woran lags?

Ich hatte in den Aufrufen die busybox nicht mit drin:

Code:
ps | grep ...

Das hat bei mir funktioniert, da ich bei der Installation der busybox die symlinks mit erzeugen lies. Bei anderen Usern ist das aber nicht unbedingt so. Also, besser im Code:

Code:
ps | busybox grep ...

verwenden.

Und zum besseren testen bei sich auf dem Tablet oder Phone die symlinks auf die busybox entfernen...

Grüsse Uwe
 
Google hat mit Kitkat netterweise eine sehr zentrale Änderung vorgenommen, ohne diese groß anzukündigen bzw. zu kommunizieren.

Man bekommt nun aus einer Uri nicht mehr direkt den Pfad zur Datei, sondern eben nur die Uri. Mit einem kleinen Workaround kann man sich diesbezüglich aber helfen, möchte man bspw. ein Bild aus der Galerie öffnen:

Code:
Uri imageUri = data.getData();
InputStream is = context.getContentResolver().openInputStream(imageUri);
Bitmap bitmap = BitmapFactory.decodeStream(is , null, options);
 

Ähnliche Themen

D
Antworten
8
Aufrufe
319
jogimuc
J
N
  • no1Ltan
Antworten
5
Aufrufe
421
swa00
swa00
D
Antworten
4
Aufrufe
332
Appento
Appento
Zurück
Oben Unten