web-dev-qa-db-fra.com

Android: Deviceready n'a pas tiré après 5 secondes

Après la mise à jour de Cordova vers v6.4.0 et la plate-forme Android vers 6.0.0, mon application ne fonctionne plus. Je reçois ceci:

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

J'ai essayé de supprimer tous les plugins et de les ajouter un par un. J'ai trouvé que c'était un problème avec cordova-plugin-device et cordova-plugin-network-information. Tous mes plugins sont à jour

20
Sebastián Rojas

Si vous utilisez le plug-in Crosswalk dans votre application, je viens de confirmer que la désinstallation et la réinstallation via;

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

Se débarrasse de 

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

Vous pouvez voir le problème à la liste des problèmes de Crosswalk's Jira ici.

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

9
Brad W

Cela devrait être corrigé dans cordova-Android 6.1.0. Il n'a pas encore été ajouté au registre npm, vous pouvez donc l'utiliser en le plaçant dans votre config.xml:

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

4
DJ_HOEK

Solution:

mettez l'appel "cordova.js" sur la dernière ligne de la page.

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

Salutation...

2
Gabriel Alberto

J'ai récemment rencontré ce même problème sur iOS. Finalement, ce qui a fonctionné pour moi était une simple remove et add de la plate-forme ios:

cordova platform remove ios
cordova platform add ios

Cela faisait longtemps que je n'avais pas complètement reconstruit la plate-forme ios et, tout comme vous, j'avais apporté d'autres modifications majeures au cours de cette période (mise à niveau de Cordova, mise à niveau de XCode, etc.). Ma théorie est que ma version config.xml ou ios existante était en quelque sorte non conforme aux dernières exigences de Cordova. Faire platform remove et platform add effacera les fichiers de construction et mettra à jour config.xml.

Je doute que cela s’applique au PO, mais pour les autres personnes qui ont rencontré le même problème, veuillez vous assurer que vous avez inclus cordova.js dans votre fichier index.html. Si vous ne l'avez pas déjà fait, ajoutez cette ligne:

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

C'est une omission très courante quand on commence tout juste avec Cordova.

2
Elliot B.

Assurez-vous que vous avez inclus cordova.js au bas du corps de votre index.html

Et n'oubliez jamais le type="text/javascript" qui doit être localisé avant le src=""

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

Inclure également ces balises META sur la tête HTML

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

Ensuite, supprimez la plate-forme actuellement installée, puis ajoutez-la à nouveau.

cordova platform remove Android
cordova platform remove browser
cordova platform remove ios

cordova platform add Android
cordova platform add browser
cordova platform add ios

Servir puis actualiser votre navigateur ou le construire

Si cela ne résout pas votre problème, essayez de supprimer certains plug-in un par un ou de supprimer vos scripts pour rechercher les bogues.

0
StefansArya

Je ne connais pas la vraie raison de ce problème, Mais j'ai essayé de supprimer cordova-plugin-whitelist et cordova-plugin-device de la liste des plugins et les ai ajoutés à nouveau ... 

0
rashidnk

Pour quelqu'un (comme moi) qui ne voudrait pas déclasser Cordova, veuillez suivre mon guide (j'ai réussi à essayer après une journée entière):

  • Sauvegardez votre projet actuel (Cordova root, pas plates-formes/Android).
  • Ouvrez la CLI cordova à partir de la racine: cordova platform remove Android

  • Après avoir retiré: cordova platform add Android. Les dossiers de votre projet (structure) sont conservés , alors ne vous inquiétez pas.

  • cordova plugin ls, puis supprimez tous les plug-ins de Cordova, à l'exception de Notfication and Whitelist (les plug-ins installés par défaut de Cordova).
  • Utilisez cordova plugin add <plugin-id> pour rajouter vos plugins d’utilisation un par un.
  • Retournez dans votre dossier de sauvegarde: Clonez AndroidManifest.xml et tout le contenu de app/src/main. Cela inclut: assets , Java , libs et res . Un des fichiers dont vous avez seulement besoin (en fait, je suggère) de laisser de côté est res/xml/config.xml . Do not clone this. Laissez Cordova construire plus tard.

  • Cordova CLI (à partir du projet racine Cordova, et non des plates-formes/Android): cordova build Android

  • Si vous avez des plugins tiers, ou si vous utilisez différentes propriétés de src de contenu, veuillez les recopier (fonctionnalités, src de contenu, auteur, ...) dans app/src/main/res/xml/config.xml. Cordova ne pourra pas détecter votre 3ème plugin
  • Ouvrez Android Studio, importez votre projet "réparé" -> Construire le projet, puis Exécuter l'application. Prendre plaisir!
0
JeffNhan

J'exécute Visual Studio et j'ai cette erreur dans l'émulateur Chrome. J'ai constaté que le lancement de l'inspecteur Web permettait à Visual Studio de demander quelques-uns des points d'ancrage demandés par divers plug-ins. Un clic dans les diverses fenêtres contextuelles m'a permis de surmonter ce problème. Cela doit être en rapport avec la manière dont Visual Studio a configuré Cordova Plugin Simulation, mais avec ma configuration, la présentation des fenêtres contextuelles était bloquée.

0
Nico Westerdale