IllegalArgumentException beim Instanziieren von HttpClient in Android

8

In der Google Play-Konsole kann ich Absturzberichte von Benutzern sehen, die sich beschweren, weil meine Anwendung direkt nach dem Start abstürzt. Die Ursache scheint eine Ausnahme zu sein, wenn HttpClient instanziiert wird. Was mache ich falsch?

Hier ist ein Auszug aus der Stack-Trace:

%Vor%     
Bastoche 01.08.2013, 17:27
quelle

1 Antwort

9

Die Lösungen

  1. Verwenden Sie HttpURLConnection anstelle von HttpClient . Laut dem Blog des Android-Entwicklers ist dies die beste Wahl: Ссылка .
  2. Erstellen Sie so schnell wie möglich eine Instanz von HttpClient im Hauptthread Ihrer Anwendung, z. B. in der Methode onCreate .

Die Ursache

Einige Android-Geräte, wie das T-Mobile MyTouch Q, verwenden eine benutzerdefinierte Implementierung der Apache HttpClient-Bibliothek. Auf solchen Geräten wird beim Erstellen des ersten HttpClient Ihrer Anwendung, der nicht im Hauptthread enthalten ist, eine Ausnahme ausgelöst:

java.lang.IllegalArgumentException: androidApplicationContext darf nicht null sein!

In meinem speziellen Fall wurde es wegen einer Analysebibliothek in GbaServiceConnectorSynchronizedSingleton.java, Zeile 76, geworfen.

Wie reproduziert man

?

Hier ist ein Link zu einem Testfall, in dem das Problem reproduziert werden kann: Ссылка

    
Bastoche 02.08.2013, 08:07
quelle