2012-03-26 7 views
1

Ich entwickle eine phonegap (v 1.5 Cordova) App mit jquery Mobile (1.1.0-RC1) und jquery 1.7.1.phonegap Anwendung stürzt nach zwei JSON Anfragen auf Android

Ich mache zwei JSON-Anfragen auf Knopf klicken, um meine Datenbank zu aktualisieren. die erste funktioniert gut:

$.getJSON(
    "http://mydomain/api.php"+last_update, 

    function (data) { 
    var $page = $(search_result); 
    var $content = $page.children(":jqmData(role=content)"); 
    var output; 

     updates = data; 
     db.transaction(auswertung,db_error); 


}); 

der zweite stoppt nach zwei Anrufe auf mehreren Android-Geräte arbeiten. Entweder die Erfolgsfunktion oder die Fehlerfunktion wird aufgerufen. Nur ein SNTP Timeout-Fehler zeigt sich:

SntpClient (75): Anforderungszeit fehlgeschlagen: java.net.SocketException: Adresse Familie nicht durch Protokoll unterstützt

und die Anwendung abstürzt.

var url = "http://mydomain/api.php"+filter; //filter: adds some get-parameters to it 
console.log(url); 
$.getJSON(
    url, 
    function (data) { 

      var $page = $(search_result); 
     var $content = $page.children(":jqmData(role=content)"); 
     var output; 

     if(data.length==0){ 
     output ="<p>no results!"+"</p>"; 
     }else{ 
     output = "<ul name=\"results\" data-role=\"listview\" data-theme=\"g\">"; 
    $.each(data,function(key,val){ 

    output +="<li>"+val.Name+"</li>"; 
    }); 
     output +="</ul>"; 
     } 
    $content.html(output); 
    $page.page(); 
    $('#results').listview('refresh'); 
$.mobile.changePage($page ,{dataUrl: "#search_result"}); 
}).error(function(jqXHR, textStatus, errorThrown) {   alert("Verbindungsfehler"); 
    console.log("error " + textStatus); 
    console.log("incoming Text " + jqXHR.responseText); 
}) 
+0

Der SntpClient Fehler ist eine falsche Fährte, so dass Sie sicher sind, es zu ignorieren. –

+0

Die Lochanwendung stürzt ab, wenn dieser Fehler auftritt. – user1294028

Antwort

0

Address family not supported by protocol I bedeutet glauben, dass das Gerät nicht weiß, was mit einer URL zu tun, die mit ... beginnt.

Was möchten Sie mit ... erreichen?

+0

"..." ist nur ein Platzhalter. Ich habe es bearbeitet, bevor ich die Frage gestellt habe. – user1294028

+0

@ user1294028 Nun, welche URLs verwenden Sie eigentlich? Weil die Fehlermeldung besagt, dass Ihre URL ungültig ist und das Protokoll nicht versteht (z. B. "http"/"https"/"Datei" usw.). – Jasper

+0

Ich benutze 'http: // mydomain/api.php'. '+ filter' fügt einige get-Parameter hinzu. Das funktioniert gut zweimal. Aber wenn Sie den Knopf für die zweite Funktion ein drittes Mal drücken, stürzt die Anwendung ab. – user1294028

1

Wir hatten genau das gleiche Problem. Die erste Anforderung ist erfolgreich und die nachfolgenden fehlschlagen.

Wir setzten diese durch Herabstufung phonegap von 1,5 bis 1.4.1

Dies scheint ein Fehler in Phonegap 1.5 zu sein. Es gibt keine Fehlerberichte dafür, soweit ich das beurteilen kann, und es ist ziemlich schwierig, sie zu reproduzieren, ohne die gesamte Codebasis zu teilen.

Die zweite Anforderung scheint nach 30 Sekunden zu Timeout, egal was Sie tun.

Wir kämpften das seit Tagen. Die einzige Lösung ist im Moment zu Rollback zu Phonegap 1.4.1

Hier Frage meines bro on the topic