【问题标题】:Android: Deviceready has not fired after 5 secondsAndroid:Deviceready 5 秒后未触发
【发布时间】:2017-03-14 04:03:43
【问题描述】:

将 Cordova 更新到 v6.4.0 并将 Android 平台更新到 6.0.0 后,我的应用程序不再工作了。我得到了这个:

deviceready has not fired after 5 seconds. cordova.js:1223
Channel not fired: onCordovaInfoReady cordova.js:1216
Channel not fired: onCordovaConnectionReady cordova.js:1216

我尝试删除所有插件并一一添加。我发现这是 cordova-plugin-device 和 cordova-plugin-network-information 的问题。我所有的插件都是最新的

【问题讨论】:

  • 我遇到了完全相同的问题...
  • 那是在 mac 上,现在我在 PC 上尝试,而且最糟糕...
  • 问题出在那些插件上(cordova-plugin-device && cordova-plugin-network-information)。这些插件分别触发onCordovaInfoReadyonCordovaConnectionReady“通道”。如果他们不开火,那么deviceready 就不会开火。一定是在 cordova-android 6.0.0 中发生了变化,这会阻止那些插件触发他们的频道......
  • 我什么也看不见。我已经降级到cordova-android 5.2.2,这似乎工作正常,即使使用cordova 6.4.0。也许现在就试试吧。
  • @asgeo1 iOS 怎么样,我得到了白屏,我尝试回退到 iOS 4.2.1 并且仍在发生..

标签: cordova cordova-plugins


【解决方案1】:

如果您碰巧在您的应用中运行 Crosswalk 插件,我刚刚确认卸载它并通过以下方式重新安装;

cordova plugin add https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview

摆脱

deviceready has not fired after 5 seconds. cordova.js:1223 Channel not fired: onCordovaInfoReady cordova.js:1216 Channel not fired: onCordovaConnectionReady cordova.js:1216

您可以在 Crosswalk 的 Jira 问题列表中查看该问题。

https://crosswalk-project.org/jira/browse/XWALK-7422

【讨论】:

【解决方案2】:

这应该在cordova-android 6.1.0 中修复。它还没有被添加到 npm-registry 中,所以你可以通过将它放到你的 config.xml 中来使用它:

<engine name="android" spec="https://github.com/apache/cordova-android.git#6.1.0"/>

【讨论】:

  • 谢谢,我等正式版
  • 6.1.0!!我想有很多或错误......太糟糕了,科尔多瓦让我失去了 3 天
  • 我刚刚通过命令行platform removeplatform add 更新到6.1.0。它解决了将默认 Cordova 图标视为我的初始屏幕而不是我设置的图标的问题。但是除非我强制应用程序进入后台然后重新打开,否则启动画面不会隐藏。此外,onCordovaInfoReadyonFileSystemPathsReadydeviceready has not fired after 5 secondsChannel not fired: 消息继续显示在我的控制台中。
  • 非常感谢。我正在与图标、闪屏、deviceReady 事件、推送通知等问题作斗争。我选择了 6.1.1 并修复了所有问题!
  • @YokeshVaradhan 没有,我一般加到配置末尾<engine name="android" spec="https://github.com/apache/cordova-android.git#6.1.0"/> </widget>
【解决方案3】:

解决方案:

将调用“cordova.js”放在页面的最后一行。

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

问候...

【讨论】:

    【解决方案4】:

    我最近在 iOS 上遇到了同样的问题。最终对我有用的是ios 平台的简单removeadd

    cordova platform remove ios
    cordova platform add ios
    

    自从我完全重新构建ios 平台以来已经有一段时间了,就像你一样,在那段时间里我进行了其他重大更改(Cordova 升级、XCode 升级等)。我的理论是我的config.xml 或现有的ios 构建在某种程度上不符合最新的Cordova 要求。执行platform removeplatform add 将清除构建文件并更新config.xml

    我怀疑这是否适用于 OP,但对于遇到相同问题的其他人,请确保您已将 cordova.js 包含在您的 index.html 文件中。如果您还没有这样做,请添加以下行:

    <script src="cordova.js"></script>
    

    刚开始使用 Cordova 时,这是一个很常见的遗漏。

    【讨论】:

      【解决方案5】:

      确保您在 index.html 正文的底部包含了 cordova.js

      永远不要忘记type="text/javascript"必须位于src=""之前

      <!DOCTYPE html>
      <html>
          <head></head>
          <body>
              ...
              <script type="text/javascript" src="cordova.js"></script>
          </body>
      </html>
      

      在 html 头部也包含这个元标记

      &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;

      然后删除当前安装的平台,然后重新添加

      cordova platform remove android
      cordova platform remove browser
      cordova platform remove ios
      
      cordova platform add android
      cordova platform add browser
      cordova platform add ios
      

      提供它然后刷新您的浏览器或构建它

      如果这不能解决您的问题,请尝试一个一个删除一些插件或删除您的脚本以找出错误。..

      【讨论】:

        【解决方案6】:

        我不知道这个问题的真正原因, 但我尝试从插件列表中删除 cordova-plugin-whitelistcordova-plugin-device 并再次添加它们。 幸运的是解决了这个问题,

        【讨论】:

          【解决方案7】:

          如果您在 iphone 上进行测试,则问题与 Content-Security-Policy ,要么删除它,要么更改规则以便它可以运行!

          还要确保将 cordova.js 添加到 html 文件的末尾。

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

          【讨论】:

            【解决方案8】:

            对于不想降级 Cordova 的人(比如我),请按照我的指南进行(经过一整天的尝试,我成功做到了):

            • 备份您当前的(cordova root,不是平台/android)项目。
            • 从根目录打开cordova CLI:cordova platform remove android

            • 删除后:cordova platform add android。您的包项目(结构)文件夹已保留,所以不用担心。

            • cordova plugin ls 然后删除除通知和白名单(Cordova 默认安装的插件)之外的所有 cordova 插件。
            • 使用cordova plugin add &lt;plugin-id&gt; 将您使用的插件一一添加回来。
            • 回到你的备份文件夹:克隆回来 AndroidManifest.xmlapp/src/main 中的所有内容。这包括:assetsjavalibsresres/xml/config.xml 您只需要(实际上我建议)省略的一个文件是res/xml/config.xml。请勿复制此内容。让 Cordova 稍后构建。

            • Cordova CLI(来自根 cordova 项目,而不是平台/android):cordova build android

            • 如果您有任何 3rd 方插件,或使用不同的内容 src、属性,请将它们(功能、内容 src、作者...)复制回 app/src/main/res/xml/config.xml。 Cordova 将无法检测到您的第三个插件
            • 打开 Android Studio,导入您“修复”的项目 --> 制作项目,然后运行应用程序。尽情享受吧!

            【讨论】:

              【解决方案9】:

              我正在运行 Visual Studio,并且在 Chrome 模拟器中出现此错误。我发现启动 Web Inspector 将允许 Visual Studio 提示各种插件要求的一些钩子,并且单击各种弹出窗口让我通过了这个。这一定与 Visual Studio 设置 Cordova 插件模拟的方式有关,但在我的设置中,它被阻止显示弹出窗口。

              【讨论】:

                【解决方案10】:

                如果这仍然与任何人相关:

                对我有用的是删除然后再次添加一个插件,即“katzer 科尔多瓦插件本地通知”。

                【讨论】:

                  【解决方案11】:

                  在我的情况下,我的工作项目突然停止并显示在错误上方

                  我的项目开始工作了

                  1 .卸载移动调试api

                  2 。清除项目文件夹

                  安卓用户

                  cd android
                  ./gradlew clean
                  

                  gradlew clean
                  

                  iOS 用户

                  cd ios
                  xcodebuild clean
                  

                  【讨论】:

                    【解决方案12】:

                    更新你的cordova-android。

                    我将cordova-android更新到10.1.0,就没有这个问题了。

                    cordova platform remove android
                    cordova platform add android@10.1.0
                    

                    【讨论】:

                      猜你喜欢
                      • 2015-02-23
                      • 1970-01-01
                      • 2016-03-29
                      • 2015-12-16
                      • 2014-08-28
                      • 2015-09-20
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多