javascript - 添加 cordova.js 时混合移动应用程序崩溃

标签 javascript android html jquery-mobile cordova

我正在使用 Phonegap 和 jQuery mobile 开发混合移动应用程序。我的应用程序在不添加 cordova.js 的情况下工作正常,但是当我添加 cordova.js 时,应用程序显示一些错误并崩溃。

我想在我的代码中添加 Phonegap 后退按钮事件,但它也不起作用,我希望 cordova.js 问题可能是问题所在。我使用的是 Cordova 2.4.0。

这是我的 logcat 和我的代码:

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/jquery.mobile-1.4.2.min.css">

        <script src="js/jquery-1.10.2.min.js"></script>
        <script src="js/jquery.mobile-1.4.2.min.js"></script>
       <script type="text/javascript" src="js/cordova.js"></script>

 <script type="text/javascript">

 function onLoad() {
     document.addEventListener("deviceready", onDeviceReady, false);
 }

  function onDeviceReady() {

        document.addEventListener("backbutton", backKeyDown, true);
        alert("Phonegap ready!");

        console.log("PhoneGap is ready");
    }

    function backKeyDown() {
         alert("bak event here ready!");
        navigator.app.exitApp(); // To exit the app!
    }

  </script>


</head>
<body onload="onLoad()">
<div data-role="page">

<!-- header -->

<div data-role="header" style="background-color: #3399FF"class="ui-header-fixed" data-theme="b"><h1><font color="#ffffff">Mobile Bank</font></h1></div>

<div data-role="main" style="background-color: #DCDCDC">

<div align="center">
<img src="img/display_image2.jpg" style="width:330px;height:350px">
</div>

<ul data-role="listview" data-divider-theme="b" data-inset="true" >
<li>
<fieldset class="ui-field-contain" data-inline="true" data-inset="true">
<input type="password" data-inline="true" data-mini="true" placeholder="Mpin here" data-theme="b" id="mpin" >
<a href="" data-role="button" data-mini="false" rel="external" data-theme="a" id="log_btn" onclick="return Validate()">Login</a>

</fieldset>
<div align="right">
<a href="forget_pin_page.html"  data-role="button" data-mini="true" data-inline="true" rel="external" data-theme="b" >Forgot Mpin?</a>
</div>
</li>
</ul>

<div data-role="ui-field-contain" align="center">   
<table><tr><td width="50%" align="center">



        <div data-role="popup" id="logout">
                           <div data-role="main">
                                  <h2 align="center">Exit Application</h2>
                                  <p>&nbsp;Are you sure want to Exit?&nbsp;</p>
                                  <div align="center">
                                         <a href="#" data-role="button" data-theme="b" rel="external"
                                                data-inline="true">Yes</a> <a href="#" data-role="button"
                                                data-theme="b" data-rel="back" data-inline="true">No</a>
                                  </div>
                           </div>
                     </div>
</div>

</div>
</body>
</html>  

日志猫

05-23 01:16:30.510: E/AndroidRuntime(1272): FATAL EXCEPTION: main
05-23 01:16:30.510: E/AndroidRuntime(1272): Process: com.nest.mobilebanking, PID: 1272
05-23 01:16:30.510: E/AndroidRuntime(1272): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in org.apache.cordova.NetworkManager$1@b3d99538
05-23 01:16:30.510: E/AndroidRuntime(1272):     at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:778)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at android.os.Handler.handleCallback(Handler.java:733)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at android.os.Handler.dispatchMessage(Handler.java:95)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at android.os.Looper.loop(Looper.java:136)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at android.app.ActivityThread.main(ActivityThread.java:5017)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at java.lang.reflect.Method.invokeNative(Native Method)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at java.lang.reflect.Method.invoke(Method.java:515)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at dalvik.system.NativeStart.main(Native Method)
05-23 01:16:30.510: E/AndroidRuntime(1272): Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10052 nor current process has android.permission.ACCESS_NETWORK_STATE.
05-23 01:16:30.510: E/AndroidRuntime(1272):     at android.os.Parcel.readException(Parcel.java:1465)
05-23 01:16:30.510: E/AndroidRuntime(1272):     at android.os.Parcel.readException(Parcel.java:1419)

最佳答案

您的 AndroidManifest 文件中是否有“android.permission.ACCESS_NETWORK_STATE”? Logcat 说你没有它,所以添加它。

关于javascript - 添加 cordova.js 时混合移动应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23821638/

相关文章:

javascript - Node JS,表达结构和需要混淆

javascript - 联系方式错误回显

javascript - jQuery 样式问题

javascript - 从第三方小部件中删除类元素

javascript - 选择输入类型=文本值作为列名称

javascript - Bootstrap 模式弹出窗口在点击关闭时打开

android - 如何在 OpenGL ES 和 Vulkan 之间传递纹理?

android - Flutter Jitsi 在 Release模式下停止

android - 统一3D : What is the Android Bundle Version and Version Code and how do they relate?

html - 如何为 li 列表添加不同的图标?