【问题标题】:phonegap application chrashes after two json requests on Android在 Android 上的两个 json 请求后 phonegap 应用程序崩溃
【发布时间】:2012-04-10 10:21:20
【问题描述】:

我正在使用 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);
})

【问题讨论】:

  • SntpClient 错误是一个红鲱鱼,因此您可以放心地忽略它。
  • 出现此错误时,洞应用程序崩溃。

标签: jquery android jquery-mobile cordova getjson


【解决方案1】:

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

我们通过将 phonegap 从 1.5 降级到 1.4.1 来解决此问题

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

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

我们为此奋斗了好几天。目前唯一的解决方案是回滚到 Phonegap 1.4.1

这是我兄弟的问题on the topic

【讨论】:

    【解决方案2】:

    Address family not supported by protocol我相信意味着设备不知道如何处理以...开头的URL。

    您想通过使用... 来完成什么?

    【讨论】:

    • "..." 只是一个占位符。我在问问题之前对其进行了编辑。
    • @user1294028 那么您实际使用的是哪些 URL?因为错误信息表明您的 URL 无效并且它不理解协议(即http/https/file 等)。
    • 我正在使用http://mydomain/api.php+filter 为其添加了一些获取参数。这两次效果很好。但是,如果您第三次点击第二个功能的按钮,应用程序就会崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 2019-11-19
    相关资源
    最近更新 更多