2012-05-11 1 views
5

Sto provando a "PhoneGap" (1.7.0) un'applicazione jQuery Mobile (1.1.0) Devo creare un'app per Android. Tuttavia, continuo a ricevere il seguente messaggio di avviso.Perché cordova.exec() è in esecuzione nella mia app Android PhoneGap (1.7) prima di "deviceready"?

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

E appare come se questo può accadere durante $ .ajax chiamate, ma è difficile essere sicuri.

Non sto effettuando alcuna chiamata alle funzioni Cordova nella mia app: è puro JQM.

Qualche idea qual è il problema. Oppure, in caso contrario, qualcuno sa perché cordova.exec() potrebbe essere chiamato durante una richiesta $ .ajax?

Sto eseguendo l'app su Android 4.0.3, in un dispositivo virtuale/simulatore.

+0

Stai caricando cordova-ver.js nel tuo codice HTML? –

+0

Vuoi dire ' ", o c'è un file chiamato" cordova-ver.js, da qualche parte ? Se il primo, allora sì, è caricato nel mio codice HTML – dommer

+0

Puoi condividere uno snippet di origine che dimostra il problema? –

risposta

21

Avevo il problema simile dopo aver trascorso un paio d'ore mi sono reso conto che cordova-1.7.0.js (o phonegap-1.7.0.js nel tuo caso) era del iOS come originariamente ho creato un progetto per iOS i ha sostituito questo file con il relativo file JS Android e ha iniziato a funzionare.

cordova-1.7.0.js è diverso per diverse piattaforme mobili, utilizzare il file JS corretto per una determinata piattaforma.

+0

Doh! Ho dimenticato di aggiornarlo quando mi sono trasferito dal mio test iPhone ad Android – dommer

+0

Hai doloroso diritto! – shaharsol

+0

Soluzione al mio problema! Grazie! – haifacarina

0

nel mio caso è stato perché la funzione

$(document).ready()... 

non stava sparando correttamente così ho semplicemente cambiato la versione javascript

<body onload="init();"> 

nel codice HTML e definito una funzione

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

nel mio file javascript e ha risolto il problema