我最近将我的 cordova 应用程序从 cordova v2.9 升级到 v3.5.0。从命令行添加插件后,我将应用程序导入到 eclipse 中,以便可以在 Android 设备上进行测试。但是,当我运行该应用程序时,我看到以下 logcat 消息:
07-08 11:24:03.359: I/Web Console(1500): deviceready has not fired after 5 seconds. at file:///android_asset/www/cordova/cordova.js:1154
07-08 11:24:03.359: D/CordovaLog(1500): file:///android_asset/www/cordova/cordova.js: Line 1147 : Channel not fired: onFileSystemPathsReady
07-08 11:24:03.359: I/Web Console(1500): Channel not fired: onFileSystemPathsReady at file:///android_asset/www/cordova/cordova.js:1147
根据Cordova 设备就绪文档 http://cordova.apache.org/docs/en/3.5.0/cordova_events_events.md.html#deviceready,我必须绑定deviceready
inside document.ready()
。它没有火。也尝试过将其绑定在外面document.ready()
根据SO的一些答案。还是没有运气。有人可以帮我吗???
设备就绪事件绑定
function cordovaInit() {
document.addEventListener('deviceready', initApp, false);
}
I call cordovaInit()
from onload()
body 元素如下所示:
<body onload="cordovaInit()">
deviceready 问题现已消失,但我收到如下空指针异常:
07-08 18:58:40.750: W/System.err(6670): java.lang.NullPointerException
07-08 18:58:40.750: W/System.err(6670): at org.apache.cordova.file.LocalFilesystem.filesystemPathForURL(LocalFilesystem.java:67)
07-08 18:58:40.750: W/System.err(6670): at org.apache.cordova.file.LocalFilesystem.getFileForLocalURL(LocalFilesystem.java:189)
07-08 18:58:40.750: W/System.err(6670): at org.apache.cordova.file.FileUtils.getFile(FileUtils.java:749)
07-08 18:58:40.760: W/System.err(6670): at org.apache.cordova.file.FileUtils.access$5(FileUtils.java:742)
07-08 18:58:40.760: W/System.err(6670): at org.apache.cordova.file.FileUtils$16.run(FileUtils.java:397)
07-08 18:58:40.760: W/System.err(6670): at org.apache.cordova.file.FileUtils$23.run(FileUtils.java:525)
07-08 18:58:40.760: W/System.err(6670): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-08 18:58:40.760: W/System.err(6670): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-08 18:58:40.760: W/System.err(6670): at java.lang.Thread.run(Thread.java:856)