Cordova 3.5 deviceready事件在5秒后未被触发

时间:2014-07-08 05:40:50

标签: android cordova cordova-3 cordova-plugins

我最近将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 Device ready doc ,我必须在deviceready内绑定document.ready()。它没有开火。还尝试根据SO上的一些答案将其绑定到document.ready()之外。仍然没有运气。有人可以帮我吗???

设备就绪事件绑定

function cordovaInit() {
    document.addEventListener('deviceready', initApp, false);
}

我从身体元素的cordovaInit()拨打onload(),如下所示:

<body onload="cordovaInit()">

现在设备问题已经消失,但我得到的是Nullpointer异常,如下所示:

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)

4 个答案:

答案 0 :(得分:2)

同样的问题。尝试删除/更新File插件,(org.apache.cordova.file)  它对我有用。 OnFileSystemReady是该插件的一个事件。

答案 1 :(得分:0)

我找到的其他内容,尝试在模拟器中添加sdcard

我发现我的初始错误是文件插件不允许访问文件空间,这是因为它没有存在于模拟器中,我在模拟器定义中添加了一个外部卡,并且嘿presto它工作

答案 2 :(得分:0)

通过卸载cordova.file插件(以及使用它的所有plaugins)解决了同样的问题,卸载平台,将cordova升级到v4并安装所有插件

答案 3 :(得分:0)

只是想添加我今天遇到的问题与cordova 4.0.0 我怀疑这不仅仅是File插件,因为我的问题是网络信息插件(org.apache.cordova.network-information)

背景故事:我已将项目复制到新文件夹并复制到plugins/目录(我知道不会从之前的错误中复制platforms)。这使得应用程序正确加载chrome并正确构建,但在我的设备上显示白屏。通过转到chrome://inspect/#devices并查看控制台日志进行调试我发现这是因为设备就绪事件在5秒后没有触发。

修复:我使用cordova plugin remove org.apache.cordova.network-information删除了插件,并使用cordova plugin add org.apache.cordova.network-information

重新添加了插件