【问题标题】:Cordova File plugin never becomes ready in AndroidCordova File 插件永远不会在 Android 中准备好
【发布时间】:2014-08-17 18:04:12
【问题描述】:

我有一个简单的 Cordova 应用程序,只有一个插件:org.apache.cordova.file。

当我在 android 模拟器中模拟应用程序时,deviceready 事件从未被触发,我将其作为输出:

D/CordovaLog( 1841): file:///android_asset/www/cordova.js: Line 1154 : deviceready has not fired after 5 seconds.
D/CordovaLog( 1841): file:///android_asset/www/cordova.js: Line 1147 : Channel not fired: onFileSystemPathsReady

一些附加信息:

cordova --version
3.5.0-0.2.4

javac -version
javac 1.7.0_55

java -version
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1~deb7u1)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

index.html:

<!doctype html>
<html>
    <head>
    </head>
    <body>

        <script src='cordova.js' type='text/javascript'></script>
        <script src='index.js' type='text/javascript'></script>
    </body>
</html>

index.js:

(function() {

    "use strict";

    document.addEventListener("deviceready", function() {
        console.log("Ready");
    }, false);

}());

Cordova File 插件是否损坏?难道我做错了什么?有没有其他人遇到过这个问题并找到了解决方案?

【问题讨论】:

    标签: javascript android cordova


    【解决方案1】:

    尝试安装 1.1.0 版本的文件插件。更新到 1.2.0 是个坏主意。

    cordova plugin add org.apache.cordova.file@1.1.0
    

    这让我在 Android 上找到了这份工作(在 iOS 上,我不再遇到其他奇怪的问题了)。

    【讨论】:

    • 仅供参考:由于 1.3.0 版本已经发布,我已经尝试过了,现在可以正常使用了
    • 这也是我的解决方案。在经历了一天的 Android Studio、Eclipse 和 CLI 痛苦之后,我认为这是我必须解决的最后一件事,以便再次通过 Eclipse 构建我的应用程序。谢谢@ledfusion!
    • FWIW - 我使用的是 1.3.1dev,我不得不回到 1.1.0
    • 我将文件插件版本更改为 1.1.0 但没有帮助
    【解决方案2】:

    我遇到了同样的问题。

    对我有用的是使用此处找到的不同版本的文件插件: https://github.com/onflapp/cordova-plugin-file

    相关话题:Android - Cordova 3.5.0 deviceready not firing after installing media plugin

    【讨论】:

    • 谢谢。我试试看。
    • 我相信 Apache 的存储库也已经解决了这个问题。如果我从github.com/apache/cordova-plugin-file 安装文件插件,我不会遇到问题。
    • 这个问题在我身上随机发生在 android 上。如果我继续调用 window.location.reload() 有时它无法触发 deviceready 事件。我正在使用 file@1.3.2 并且已经尝试过 file@1.1.0 但没有运气。有什么想法吗?
    • 同样的问题 Vitor,window.location.reload 在我的应用程序中经常做同样的事情。你找到解决办法了吗?
    • 同样的问题。在将我的科尔多瓦从 3.3.0 更新到 3.6.4 并更新所有插件后,它停止在某些设备上触发 deviceReady。
    【解决方案3】:
    You need to include cordova plugin before closing of body tag , so that cordova gets loaded properly before body loading completes.
    
    
    <!doctype html>
    <html>
        <head>
        </head>
        <body>
    
            <script src='cordova.js' type='text/javascript'></script>
            <script src='index.js' type='text/javascript'></script>
        </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多