Phonegap app启动时应用程序错误

时间:2014-08-04 17:10:24

标签: jquery cordova

我正在开发一个android phoenegap应用程序。感谢Stackoverflow,我设法让它开始工作。唯一的问题是超时。应用程序有时会顺利启动而不会抛出错误,但有时它会抛出错误:

Application Error - The connection to the server was unsuccessful. (file:///android_asset/www/index.html)

我用Google搜索并找到了2个解决方案:

1)添加超时值:super.loadUrl(“file:///android_asset/www/index.html”,10000);

2)创建虚拟索引页面,如this link

但问题仍未解决。我也尝试将超时从10000增加到100000.仍然没有帮助。模拟器有时似乎工作正常,但突然agin抛出相同的错误。

我在这里做错了什么?任何帮助将不胜感激。

修改

的index.html

<!DOCTYPE HTML>

<html>
  <head>
    <title>First App</title>
    <style> 
        .table {
        border: 2px solid #a1a1a1;
        background: #dddddd;
        width: 90px;
        height: 90px;
        border-radius: 25px;
        text-align: center;
        position:absolute;
        }
    </style>
    <script src="cordova.js"></script>
    <script type="text/javascript" src="jquery-1.11.1.min.js"></script>
    <script type="text/javascript">

    function onLoad()
    {
        $('.table1').html('');
        $.ajax({
            type: "POST",
            url: "http://192.168.0.70:81/MobileService.asmx/GetTables",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: true,
            cache: false,
            success: function (msg) {
            var Tabels = msg.d;
            $.each(Tabels, function(index, table) {
                alert('ptx'+table.PointX);
                var tabel_data='<div class="table"';
                tabel_data +=' style="top:'+ table.PointY +'px;';
                tabel_data +='left:'+table.PointX+'px;"';
                tabel_data +=">"+table.TableName +"</div>";
                $('.table1').append(tabel_data);
            });
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert('error');
                alert(errorThrown);
            }
        });
    }
    </script>
  </head>
  <body>
    <input type="submit" onclick="onLoad();" value="layout1">
    <div class="table1" style="position: absolute; display: block;" ></div>
  </body>
</html>

MainActivity.java:

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   super.loadUrl("file:///android_asset/www/index.html", 10000);
}

1 个答案:

答案 0 :(得分:1)

关于您的应用程序错误:

  1. 您是否正在使用PhoneGap Developer App进行开发?
  2. 您是否将deviceready事件用作应用程序中的主要挂钩?
  3. 我建议不要使用静态(10秒!)超时,有更好的方法不会影响应用的可用性。虚拟索引同样很糟糕。如果您能给我更多信息,我相信我们可以为您解决这个问题。

    我相信你的问题很可能是2:在设备准备好之前尝试与cordova api进行交互