2012-05-11 53 views
5

我想「PhoneGap」(1.7.0)一個jQuery Mobile應用程序(1.1.0)我必須創建一個Android應用程序。但是,我不斷收到以下警報消息。爲什麼cordova.exec()在「deviceready」之前在我的Android PhoneGap(1.7)應用程序中運行?

ERROR: Attempting to call cordova.exec() before 'deviceready'. Ignoring. 

出現彷彿這可能會在$就調用發生,但它難以肯定。

我沒有在我的應用程序中撥打Cordova功能的任何電話 - 這是純粹的JQM。

任何想法是什麼問題。或者,如果失敗了,有人知道爲什麼cordova.exec()可能會在$ .ajax請求期間被調用嗎?

我在Android 4.0.3下運行應用程序,在虛擬設備/模擬器中。

+0

你在你的HTML中加載cordova-ver.js嗎? –

+0

你的意思是'script type =「text/javascript」charset =「utf-8」src =「cordova-1.7.0.js」>',或者是否有文件名爲「cordova-ver.js」如果前者是,那麼是 - 它被加載到我的HTML中 – dommer

+0

你能分享一個演示這個問題的源代碼片段嗎? –

回答

21

我花了幾個小時後發現類似的問題,我意識到cordova-1.7.0.js(或phonegap-1.7.0.js在你的情況)是iOS的最初我爲iOS創建項目用相關的android JS文件替換這個文件,它開始工作。

cordova-1.7.0.js對於不同的移動平臺是不同的,爲特定的平臺使用正確的JS文件。

+0

Doh!那是問題。忘了更新它,當我從我的iPhone測試移動到Android。 – dommer

+0

你是痛苦的正確! – shaharsol

+0

解決我的問題!謝謝! – haifacarina

0

在我的情況,這是因爲在

$(document).ready()... 

功能不正常啓用,所以我乾脆改成了JavaScript版本

<body onload="init();"> 

在HTML 和定義的函數

function init(){ 
    document.addEventListener("deviceready", onDeviceReady, true); 
} 

在我的JavaScript文件,它解決了問題

相關問題