2013-05-21 10 views
6

Ich bin derzeit mit PhoneGap 2.7.0 auf meinem Projekt und Code läuft ohne Fehler auf iOS.Wenn ich versuche, den gleichen Code auf Android (mit Ausnahme der Cordova Javascript-Datei, die ich wissen ist anders für Android) ich bin diesen Fehler:Cordova Android Uncaught Funktion Fehler

05-21 22:02:25.630 1663-1663/com.###.### D/Cordova: onPageFinished(file:///android_asset/www/index.html) 
05-21 22:02:25.640 1663-1663/com.###.### D/CordovaLog: Uncaught Function required as first argument! 
05-21 22:02:25.640 1663-1663/com.###.### E/Web Console: Uncaught Function required as first argument! at file:///android_asset/www/cordova-2.7.0.js:627 

Hier ist die JavaScript ich bin in index.html mit:

<script type="text/javascript"> 
var app; 
document.addEventListener("deviceready", function() 
{ 
    app = new AppWrapper(); 
}, false); 
</script> 

ich bin nicht sicher, was das Problem ist. Ich hatte dieses Problem schon einmal, aber es hat sich in der Vergangenheit gelöst (schwarze Magie?). Jede Hilfe würde sehr geschätzt werden.

Antwort

14

Nachdem ich Ripple verwendet habe, um dieses Problem zu debuggen (sehr empfehlenswert), habe ich einen Zeiger auf eine undefinierte Funktion gefunden, die auf einen Ereignis-Listener angewendet wurde (also nicht spezifisch für den Anruf des Geräts).

Für zukünftige Entwickler: überprüfen, um sicherzustellen alle Ihrer „addEventListener“ Anrufe an bestehenden Funktionen zeigen. Scheint offensichtlich, aber es passiert.

4

Überprüfen Sie, ob Sie den richtigen Kontext der Callback-Funktion in Ihrem Code angegeben haben.

Stellen Sie sicher, dass Sie "this" nicht in der Rückruffunktion verwenden. Zum Beispiel

var app = { 
    init : function() { 
     document.addEventListener("deviceready", this.deviceready, false); 
    }, 

    deviceready : function() { 
     app.appWrapper = this.createAppWrapper();//watch out who is "this", you should use "app" but not "this" 
    }, 

    createAppWrapper : function() { 
     return new AppWrapper(); 
    } 
}; 

app.init(); 
+0

Ich hatte das gleiche Problem und diese Empfehlung löste es. Vielen Dank! – digaomatias

Verwandte Themen