在Android上发出两个json请求后,phonegap应用程序崩溃了

时间:2012-03-26 21:30:48

标签: jquery android jquery-mobile cordova getjson

我正在使用jquery mobile(1.1.0-RC1)和jquery 1.7.1开发一个phonegap(v 1.5 Cordova)应用程序。

我点击按钮时发出两个json请求来更新我的数据库。 第一个效果很好:

$.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);


});

第二个在两次调用后停止在几个Android设备上工作。 调用成功函数和错误函数。仅显示Sntp超时错误:

  

SntpClient(75):请求时间失败:java.net.SocketException:协议不支持的地址族

并且应用程序崩溃。

    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);
})

2 个答案:

答案 0 :(得分:1)

我们遇到了完全相同的问题。第一个请求成功,后续请求失败。

我们通过将phonegap从1.5降级到1.4.1

来解决这个问题

这似乎是Phonegap 1.5中的一个错误。据我所知,它没有错误报告,如果不共享整个代码库,很难重现。

无论你做什么,第二个请求似乎在30秒后超时。

我们打了好几天。现在唯一的解决方案是回滚到Phonegap 1.4.1

这是我的兄弟问题on the topic

答案 1 :(得分:0)

Address family not supported by protocol我认为这意味着设备不知道如何处理以...开头的网址。

您希望使用...

来完成什么?