NetworkOnMainThreadException auf Facebook Einloggen mit Phonegap 1.6.0

7

Ich erstelle gerade eine Anwendung mit Phonegap 1.6.0 und Sencha Touch 1.1. Vor Kurzem haben wir beim Testen auf einem Smartphone mit Android 4.0.4 festgestellt, dass das Facebook-Login nicht wie erwartet funktioniert. Wir verwenden das Phonegap Facebook Plugin hier mit Patches für Cordova. Sobald wir uns auf einem Smartphone mit Android Honeycomb oder höher anmelden, startet die Anwendung NetworkOnMainThreadException, da Netzwerkvorgänge im Hauptthread nicht zulässig sind. Diese Ausnahme wird nur auf Android Honeycomb oder höher geworfen, weshalb wir es bei 2.3.3 nicht bemerkt haben. Die Ausnahme wird ausgelöst, wenn FB.login () aufgerufen wird und der Rückruf nicht erreicht wird.

Ich habe verschiedene Themen und Themen überprüft, aber alle sind extrem vage. Mir ist bewusst, dass ich die Netzwerkoperation in einem separaten Thread ausführen muss, aber Ich bin nicht sicher, wie das gemacht werden sollte . Threading scheint in Java zu passieren, aber ich benutze überhaupt kein Java. Bevor ich in Code herumspiele, der nicht von mir geschrieben wurde, hätte ich gerne Hilfe.

Ich werde versuchen, einzugrenzen, welcher Teil die Ausnahme später verursacht. Jede Hilfe wäre willkommen.

Fehler-Stack:

%Vor%     
Rex 25.05.2012, 15:51
quelle

1 Antwort

20

Ich habe es geschafft, den Fehler zu beheben, indem ich den Authentifizierungsteil von ConnectPlugin.java in einen separaten Thread setzte. Für zukünftige Leser werde ich die folgenden Anweisungen veröffentlichen.

Ersetzen Sie in ConnectPlugin.java :

%Vor%

mit dem folgenden Code:

%Vor%

Das sollte NetworkOnMainThreadException beheben.

    
Rex 27.05.2012, 16:42
quelle