I recently upgraded my cordova app from cordova v2.9 to v3.5.0. After adding plugins from command-line, I imported my app to eclipse so that I can test on an android device. But, when I run the app, I see below logcat message:
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
According to Cordova Device ready doc, I had to bind deviceready
inside document.ready()
. It did not fire. Also tried binding it outside document.ready()
according to some answers on SO. Still no luck. Can someone help me out???
Device ready event binding
function cordovaInit() {
document.addEventListener('deviceready', initApp, false);
}
I call cordovaInit()
from onload()
of body element like below:
<body onload="cordovaInit()">
The deviceready issue is gone now, but I am getting a Nullpointer Exception as below:
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)
Something else I found, try adding a sdcard to your emulator
I found my initial error was the file plugin was not being allowed to access a file space, this was because it didn't exist in the emulator, I added an external card to the emulator definition and hey presto it worked
Just wanted to add I encountered this issue today with cordova 4.0.0 I suspect this happens with more than just the File plugin because my problem was with Network information plugin (org.apache.cordova.network-information)
Back story: I had copied the project to a new folder and copied over the
plugins/
directory (I knew not to copyplatforms
from a previous mistake). This made it so the app was loading in chrome correctly and building correctly but showing a white screen on my device. Debugging by going tochrome://inspect/#devices
and looking at console logs I saw that it was because the device ready event was not firing after 5 seconds.Fix: I removed the plugins with
cordova plugin remove org.apache.cordova.network-information
and re-added it withcordova plugin add org.apache.cordova.network-information
Did solve the same issue by uninstalling cordova.file plugin (and all plaugins that using it), uninstall platform, upgrade cordova to v4 and install all plugins back
Same issue. Try to remove/update the File plugin, (org.apache.cordova.file) it's worked for me. OnFileSystemReady is an event of that plugin.