Je travaille dans Cordova et AndroidStudio pour créer des applications Android/iOS. Tout fonctionnait bien jusqu'à ce que je modifie mon Cordova à hier. J'ai également mis à jour Node à la dernière. Lorsque je crée un projet Cordova et que j'ajoute la plate-forme Android. Cela donne une structure de répertoire totalement différente. Je ne peux pas voir les dossiers assets
, res
et src
dans le répertoire de plate-forme du projet D:\testApp1\platforms\Android
. Plus important encore, le répertoire ci-dessus est manquant AndroidManifest.xml
, ce qui entraîne l'échec du plugin admob
à être ajouté.
Voici l'erreur que j'ai lors de l'ajout du plugin:
Échec de l'installation de 'cordova-plugin-admobpro': Erreur: ENOENT: aucun fichier ou répertoire de ce type, ouvrez 'D:\Projects\testApp1\plateformes\Android\AndroidManifest.xml' à Object.fs.openSync (fs.js: 646: 18) à Object.fs.readFileSync (fs.js: 551: 33) sur Object.parseElementtreeSync (D:\Projects\testApp1\plates-formes\Android\cordova\node_modules\cordova-commun\src\util\xml-helpers.js: 180: 27) lors du nouveau manifeste Android (D:\Projects\testApp1\plates-formes\Android\cordova\lib\AndroidManifest.js: 29: 20) sur AndroidProject.getPackageName (D:\Projects\testApp1\plateformes\Android\cordova\lib\AndroidProject.js: 99: 12) sur Api.addPlugin (D:\Projects\testApp1\plates-formes\Android\cordova\Api.js: 223: 57) at handleInstall (C:\Users\Rao\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\install.js: 594: 10) sur C:\Utilisateurs\Rao\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\plugman\install.js: 357: 28 at _fulfilled (C:\Users\Rao\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js: 787: 54) sur self.promiseDispatch.done (C:\Users\Rao\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\node_modules\q\q.js: 816: 30)
Puis-je avoir une aide s'il vous plait?
Edition finale:
cordova-Android 7.1.4 est sorti, il devrait résoudre la plupart de ces problèmes.
modifier:
Comme les gens continuent à voter jusqu'à la réponse, je donnerai plus de détails sur le problème.
Le problème n'est pas vraiment le plugin écrit sur le AndroidManifest.xml
ou sur le config.xml
. Il est vrai que l'emplacement a changé et que les plugins doivent mettre à jour le chemin, mais ce n'est pas obligatoire et Cordova se charge des nouveaux chemins.
Le problème est que certains plugins utilisent la balise source-file
pour des choses qui ne sont pas du code source. (c'est-à-dire, l'utiliser pour copier des images au lieu d'utiliser des balises resource-file
) Cela crée un dossier res (ou lib) qui confond Cordova, lui faisant croire qu'il s'agit d'un ancien projet Eclipse, alors qu'il s'agit vraiment d'un projet de studio Android, et il recherche les fichiers sur les anciens emplacements au lieu de chercher dans les nouveaux emplacements.
Cela a été corrigé dans cordova-Android et sera corrigé dans la prochaine version . La solution consiste à rechercher le plug-in à l'aide de la balise source-file
et à le mettre à jour pour qu'il utilise la balise resource-file
.
ANCIENNE REPONSE:
Il est maintenant dans app/src/main/AndroidManifest.xml
.
Si le plugin écrit dessus, il devrait être mis à jour pour écrire au bon endroit.
Lire la version de cordova-Android 7.0.0 article de blog
Cordova CLI v8.0 utilisera [email protected]
par défaut.
Comme la plupart des plugins cordova ne supportent pas encore [email protected]
, vous pouvez aussi essayer d'utiliser le plus ancien en spécifiant la version:
cordova platform add [email protected]
Ou, si vous préférez utiliser [email protected]
, vous pouvez également attendre une mise à jour sur cordova-plugi-admobpro
pour prendre en charge le [email protected]
, cela arrivera bientôt.
Dans le fichier config.xml
du projet cordova, sous la section balise xml <platform name="Android">
, ajoutez la balise suivante:
<resource-file src="platforms/Android/app/src/main/AndroidManifest.xml" target="AndroidManifest.xml" />
J'ai simplement corrigé l'erreur en copiant AndroidManifest.xml In
plates-formes\Android\app\src\main \
à
plates-formes\Android \
Le déclassement de 7.0 à 6.4 a fait l'affaire pour moi
cordova platform rm Android
cordova platform add [email protected]
cordova build
Le problème semble être lorsque vous essayez de générer pour la publication en même temps que vous exécutez l'application localement. J'arrête l'application sur localhost, puis je construis pour la publication. Problème résolu.
Mon problème était un plugin personnalisé créant le dossier libs dans plates-formes\Android. Cela a fait croire à Cordova que mon projet était un projet Eclipse et que, par conséquent, il recherchait le manifeste Android dans l'ancien lieu.
Si vous passez à Cordova Android +7.0.0, assurez-vous que les plates-formes\Android ne contiennent pas les éléments suivants:
ce lien aidé
Cordova utilise ces fichiers pour déterminer si votre projet est un projet Eclipse. S'ils existent, votre projet sera traité comme un projet Eclipse avec l'ancienne structure de chemin. Certains plugins peuvent créer ces fichiers/dossiers sur votre dossier Android.