2013-05-21 2 views
6

В настоящее время я использую PhoneGap 2.7.0 для моего проекта, и код работает без ошибок в iOS. Когда я пытаюсь запустить тот же код на Android (за исключением файла javascript из Кордовы, который я знаю, отличается для Android) Я получаю эту ошибку:Кордова Android Неисправность функции Ошибка

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 

Вот является JavaScript Я использую в index.html:

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

Я не уверен, что проблема есть. Раньше у меня была эта проблема, но в прошлом она разрешилась (черная магия?). Любая помощь была бы весьма признательна.

ответ

14

После использования Ripple для отладки этой проблемы (настоятельно рекомендуется) я нашел указатель на неопределенную функцию, применяемую к прослушивателю событий (так что это не относится к вызову deviceready).

Для будущих разработчиков: убедитесь, что все ваших вызовов «addEventListener» указывают на существующие функции. Кажется очевидным, но это происходит.

4

Проверьте, не указали ли вы правильный контекст функции обратного вызова в вашем коде.

Убедитесь, что вы не используете функцию «this» в функции обратного вызова. Например,

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

У меня была такая же проблема, и эта благодарность решила ее. Благодаря! – digaomatias

Смежные вопросы