Lorsque j'essaie de créer mon application pour téléphone mobile pour Android à l'aide de
Sudo phonegap build Android
il échoue avec cette erreur:
:compileDebugJava
/Users/youssefsami/Library/Mobile Documents/com~Apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/Android/src/org/Apache/cordova/inappbrowser/InAppBrowser.Java:120: error: cannot find symbol
|| Config.isUrlWhiteListed(url)) {
^
symbol: method isUrlWhiteListed(String)
location: class Config
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
FAILED
FAILURE:
Build failed with an exception.
* What went wrong:
Execution failed for task ':compileDebugJava'.
>
Compilation failed; see the compiler error output for details.
* Try:
Run with
--stacktrace option to get the stack trace. Run with
--info or
--debug
option to get more log output.
BUILD FAILED
Total time: 5.607 secs
/Users/youssefsami/Library/Mobile Documents/com~Apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/Android/cordova/node_modules/q/q.js:126
throw e;
^
Error code 1 for command: /Users/youssefsami/Library/Mobile Documents/com~Apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/Android/gradlew with args: cdvBuildDebug,-b,/Users/youssefsami/Library/Mobile Documents/com~Apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/Android/build.gradle,-Dorg.gradle.daemon=true
ERROR building one of the platforms: Error: /Users/youssefsami/Library/Mobile Documents/com~Apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/Android/cordova/build: Command failed with exit code 1
You may not have the required environment or OS to build this project
Error: /Users/youssefsami/Library/Mobile Documents/com~Apple~CloudDocs/Developer/Mobile Apps/UzuConvert/platforms/Android/cordova/build: Command failed with exit code 1
at ChildProcess.whenDone (/usr/local/lib/node_modules/phonegap/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
J'ai essayé de définir Java_home sur l'alias Java dans lib exec, mais toujours rien. Des idées sur ce qui cause peut-être le problème?
C'est parce que votre plug-in InAppBrowser est obsolète et probablement désynchronisé par rapport à une version plus récente de la plate-forme Cordova Android par rapport à la première installation du plug-in. J'avais le même problème avec [email protected] et 0.5.3 de InAppBrowser.
La solution est de supprimer d'abord le plugin
cordova plugin rm org.Apache.cordova.inappbrowser
Ajoutez-le à nouveau (il devrait réinstaller avec la dernière version le CLI de Cordova dans mon cas, il a récupéré la version 0.6). Vous pouvez vérifier la version dans RELEASENOTES.md dans le dossier plugins/org.Apache.cordova.inappbrowser /.
cordova plugin add org.Apache.cordova.inappbrowser
Vous devrez supprimer la plate-forme Android et l'ajouter de nouveau avant de la reconstruire afin de ne pas conserver l'ancienne version du plug-in.
cordova platform rm Android
et
cordova platform add Android
Maintenant, reconstruisez à nouveau et l'erreur aurait dû disparaître.
EDIT: Je viens de remarquer au début de votre question que vous utilisez phonegap. Puisque vous avez étiqueté Cordova (et c’est ce que j’utilise), j’ai répondu avec les commandes Cordova, mais j’imagine que le même processus s’applique avec Phonegap.
Même problème avec [email protected] Merci, JDawgg, votre solution est meilleure que la mienne, mais si quelqu'un a toujours le bogue, vous pouvez utiliser [email protected] comme ceci:
cordova platform remove Android
puis
cordova platform add [email protected]
vous devez avoir Android 4.2.2 sdk installé
Finalement
Sudo phonegap build Android
Si quelqu'un utilise Meteor et rencontre le même problème, martijnwalraven suggère de supprimer l'ancienne version de cordova-plugin-inappbrowser
et d'ajouter la plus récente:
$ meteor remove cordova:cordova-plugin-inappbrowser
$ meteor add cordova:[email protected]
Cela a fait le tour pour moi!