Ionic-framework: Impossible d'ajouter la plate-forme Android depuis la mise à jour Android SDK Tools 25.3.0

Créé le 1 mars 2017  ·  45Commentaires  ·  Source: ionic-team/ionic-framework

Version ionique :
[X] 2.1

Je soumets un...
[X] rapport de bogue

Comportement actuel :
Lorsque j'ajoute la plate-forme Android, j'ai l'erreur suivante :
Erreur : impossible de trouver le wrapper gradle dans le SDK Android. Vous devrez peut-être mettre à jour votre SDK Android.

Comportement attendu:
Pas d'erreur

Étapes à reproduire :
$ plate-forme ionique ajouter android

Les autres informations:
Semble être lié à la suppression des modèles de projet dans Android SDK Tools dans la dernière version : http://tools.android.com/recent/androidsdktoolsrevision2530feb2017

Les outils obsolètes/dépréciés ont été supprimés : [...] Modèles de projets et d'activités

Commentaire le plus utile

Question d'assistance ? Est ce que c'est vraiment? Un nouvel utilisateur téléchargeant Ionic2 et le SDK Android échouera lamentablement à créer une version Android maintenant en raison des scripts de construction Ionic2 ne gérant pas le dernier SDK.

Je peux imaginer que beaucoup de projets de développement perdent de nombreuses heures maintenant à cause de ce changement. Il nous a fallu environ deux heures pour comprendre ce qui se passait et un processus assez compliqué de rétrogradation vers le SDK précédent (car cela ne peut pas être fait dans Android Studio). Si quoi que ce soit, vous devriez avoir un grand avertissement sur votre première page à ce sujet maintenant.

Tous les 45 commentaires

Incroyable, je viens de faire une mise à jour ici qui nécessitait de nouvelles fonctionnalités dans le SDK Android et après une mise à jour des outils, tout a bloqué ici avec le même problème que celui décrit ci-dessus. Ce qui est intéressant, c'est qu'android.bat est également obsolète dans cette mise à jour, vous ne pouvez donc même pas l'utiliser pour installer un SDK spécifique.

Il semble que 25.3 soit incompatible avec Android Studio et Ionic, par exemple la mise à niveau interrompt également le lien "Lancer le gestionnaire de SDK autonome" dans le gestionnaire de SDK dans AS. Votre meilleur pari est de supprimer les "Outils SDK Android" dans le gestionnaire de SDK dans Android Studio et de télécharger le fichier tools_*.zip à partir de https://developer.android.com/studio/index.html et de l'extraire dans votre SDK Android. dossier.

Salut! Merci d'avoir ouvert un problème avec nous ! Comme cela ressemble plus à une question d'assistance, je vous invite à poser cette question sur notre forum ou sur notre chaîne Slack . Merci d'avoir utilisé Ionic !

Question d'assistance ? Est ce que c'est vraiment? Un nouvel utilisateur téléchargeant Ionic2 et le SDK Android échouera lamentablement à créer une version Android maintenant en raison des scripts de construction Ionic2 ne gérant pas le dernier SDK.

Je peux imaginer que beaucoup de projets de développement perdent de nombreuses heures maintenant à cause de ce changement. Il nous a fallu environ deux heures pour comprendre ce qui se passait et un processus assez compliqué de rétrogradation vers le SDK précédent (car cela ne peut pas être fait dans Android Studio). Si quoi que ce soit, vous devriez avoir un grand avertissement sur votre première page à ce sujet maintenant.

^^ ce serait moi. ??

Btw pour clarifier comment cela s'est passé dans notre équipe, nous avons soudainement eu une erreur où le projet Android n'a pas pu être construit en raison de ne pas accepter de nouveaux accords de licence. Lorsque nous avons ensuite ouvert Android Studio pour accepter cet accord de licence, cela signifiait essentiellement télécharger le dernier SDK. Par conséquent, comme les scripts de construction Ionic2 n'étaient pas compatibles avec ce SDK, nous étions bloqués.

Au fait, merci pour ceux qui ont suggéré un correctif en rétrogradant le SDK. Comme quelqu'un l'a mentionné sur un post de forum, cela signifie essentiellement télécharger l'un de ces éléments :

https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip
https://dl.google.com/android/repository/tools_r25.2.5-windows.zip

Selon le système (je suppose qu'il y a aussi un Linux ?). Vous devez d'abord désinstaller tous les outils, localiser le dossier des outils Android dans votre dossier utilisateur (qui devrait maintenant être vide) et copier les fichiers manuellement dans celui-ci. Mais je suppose qu'une autre façon serait simplement de pointer le chemin vers vos outils téléchargés et extraits à la place peut-être ? De toute façon, je devais également exécuter le fichier android.bat afin qu'il télécharge et installe des éléments supplémentaires avant que mon projet ne soit réellement compilé.

Merci pour votre aide @64jcl.

Bonjour, je rencontre le même problème sur macOS. J'ai installé les outils Android SDK 25.3.1

Je ne sais pas si ou quand l'équipe Ionic résoudra ce problème.
Mais en attendant, vous pouvez rétrograder manuellement les outils Android SDK comme solution de contournement : https://forum.ionicframework.com/t/error-could-not-find-gradle-wrapper-within-android-sdk/79527/5

J'ai le même problème. Seulement, j'obtiens mon erreur lorsque j'essaie de faire n'importe quel type de build Android. c'est- ionic build android dire ionic run android ...
Système d'exploitation : Linux Mint
Version ionique : 2.2.1
Version Cordoue : 6.5.0
Outils SDK 25.3.1

Je reçois l'erreur ci-dessous :
Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK. Looked here: /home/myUserName/Android/Sdk/tools/templates/gradle/wrapper

Le chemin /home/myUserName/Android/Sdk/tools/" existe dans mon dossier Android SDK mais la partie /templates/gradle/wrapper de la structure du fichier n'existe PAS pour SDK Tools 25.3.1

Ayant également le même problème que ci-dessus. Vraiment surpris que l'équipe ait résolu ce problème. Comme d'autres l'ont dit, cela semble être quelque chose qui nécessite un correctif immédiat, car les nouveaux utilisateurs ne sauront pas revenir sur leurs outils sdk récemment téléchargés.

Moi aussi.. Ce n'est PAS un problème de support. Les instructions indiquées et les packages SW ne fonctionnent pas !

J'obtiens exactement la même erreur lorsque j'essaie de faire n'importe quel type de build Cordova... Je pense que ce problème devra peut-être être résolu par Cordova au lieu d'Ionic... Je viens de regarder le suivi des problèmes de Cordova et il semble que d'autres personnes le soient avoir du mal à ajouter des plugins en raison du changement de chemin de fichier dans SDK Tools 25.3.1. Voici où il semble que l'équipe de Cordova travaille pour le réparer.

@ jgw96 Pas vraiment sûr de fermer cela en tant que problème de support est la meilleure ligne de conduite ici.

Dans l'état actuel des choses, en essayant le guide "Hello world" du guide, l'utilisateur se heurtera directement à ce problème en suivant les instructions à la lettre.

Même s'il est décidé qu'il s'agit d'un problème en amont, le "Mise en route" doit fonctionner immédiatement comme décrit, il faudrait donc le mettre à jour/expliquer à mon humble avis.

Bien qu'honnêtement, avoir des choses comme "télécharger X, puis remplacer manuellement le composant Y par une version obsolète à l'emplacement Z" dans les exemples pour débutants peut rebuter pas mal de gens, et à juste titre, à mon humble avis.

Pourtant, une meilleure situation que d'avoir à chercher une solution sur Google, d'autant plus que tout le monde qui essaie Ionic n'a pas une bonne connaissance de la chaîne d'outils sous-jacente.

N'essayant d'offenser personne, votre équipe a fait et fait un travail remarquable avec Ionic, je voudrais juste souligner que ce problème est un peu plus grave qu'on ne le pense à première vue.

Oui je suis assez d'accord. Je suis désolé si je suis tombé sur un peu "féroce" dans ma réponse que j'ai trouvé en appelant cela une "question d'assistance" était faux. L'équipe fait un excellent travail et, naturellement, il n'y avait aucun moyen pour elle d'empêcher ce changement de faire dérailler soudainement de nombreux projets. Mais je pense toujours qu'il s'agit d'un problème majeur auquel je m'attendrais à un meilleur suivi que de simplement le rejeter.

Et je suppose que ce n'est même pas Ionic qui échoue, mais une partie du processus de construction de Cordova, donc ce n'est peut-être pas du tout entre leurs mains. Si l'équipe Ionic a un suivi à ce sujet sur un message qu'elle a publié sur le forum, envisagez de publier un lien vers le fil de discussion décrivant le problème et comment le contourner car je vois que ce problème "fermé" est toujours visité par beaucoup.

Merci pour le lien vers le problème en amont @timothy - il s'agit bien d'un problème Cordova et a maintenant été corrigé , nous devons donc juste attendre qu'une nouvelle version Cordova soit coupée.

Je suis en train de parcourir quelques tutoriels pour la première fois et je suis tombé sur cela. Je peux probablement me débrouiller et je n'aurai pas besoin d'exécuter ionic run android tant que le correctif n'aura pas été publié.

Heureux de voir qu'il est pris en charge.

schmorrison

Mon grand respect va à l'équipe Ionic pour rester calme pendant cette tempête de protestation. Où le problème est un problème Cordova, pas un problème Ionic. Et où une solution de contournement appropriée a déjà été publiée dans la troisième réponse, le même jour, à ce problème.

Gardons tous la tête froide et réalisons qu'il y a plus de 600 problèmes ouverts et que l'équipe Ionic fait un travail FANTASTIQUE.

Le projet cordova-android n'a pas encore créé de nouvelle version, mais en attendant, vous pouvez utiliser les commandes suivantes pour passer à la dernière version de la branche principale. Je l'ai utilisé pour créer et exécuter avec succès un apk Android à l'aide du dernier SDK Android.

cordova platform rm android
cordova platform add https://github.com/apache/cordova-android

@fiznool , ne fonctionne malheureusement pas pour moi
J'ai exécuté les deux commandes, mis à jour SDKtools vers la version 25.0.2 via SDK Manager (Android Studio)
L'erreur "Aucun outil de génération installé n'a été trouvé. Installez les outils de génération Android version 19.1.0 ou supérieure" reste en place :

Des idées d'odder, peut-être ?

2017-03-26 23_30_40-project structure

Cela ressemble à un problème complètement distinct pour moi.

@fiznool , en fait, ce problème survient après avoir essayé les solutions ci-dessus, mais comme vous l'avez supposé, je n'ai aucune idée si ces problèmes sont liés d'une manière ou d'une autre ou s'ils sont séparés

Je suis cette erreur lors du déclenchement de cette commande :
Cordoue construire

Erreur : impossible de trouver le wrapper gradle dans le SDK Android. Vous devrez peut-être mettre à jour votre SDK Android.
Regardé ici : /home/rhome/Android/Sdk/tools/templates/gradle/wrapper

S'il vous plaît aider

Merci d'avance

@ietuday

cordova platform rm android
cordova platform add https://github.com/apache/cordova-android
cordova build

@fiznool

en les tirant, cela montre

Erreur : impossible de trouver une version installée de Gradle dans Android Studio,
ou sur votre système pour installer le wrapper gradle. S'il vous plaît inclure gradle
dans votre chemin, ou installez Android Studio

Merci

Exactement le même message que

Pareil ici.

Je rencontre le même problème et je souhaite documenter ce que j'ai essayé dans l'espoir de trouver une solution :

# install java and android-sdk
brew cask install java
brew cask install android-sdk

# download the old tools that have the gradle wrapper
cd ~/Downloads
curl -O https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
unzip -a tools_r25.2.3-macosx.zip

# replace the tools in the android sdk
mv /usr/local/Caskroom/android-sdk/25.2.3/tools /usr/local/Caskroom/android-sdk/25.2.3/tools.backup
mv ~/Downloads/tools /usr/local/Caskroom/android-sdk/25.2.3

N'a pas fonctionné. J'ai aussi essayé brew cask install android-studio et cliqué sur un tas de boutons mais je ne sais pas vraiment ce qui se passait là-bas.

J'obtiens l'erreur suivante :

ANDROID_HOME=/usr/local/Caskroom/android-sdk/25.2.3
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
Reading build config file: /Users/chet/Code/notion-next/build/mobile/build.json
Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio

@ccorcos Avez-vous un répertoire sdk/ sous /usr/local/Caskroom/android-sdk/25.2.3 ? Si c'est le cas, essayez d'y copier le contenu de l'archive, par exemple :
mv ~/Downloads/tools /usr/local/Caskroom/android-sdk/25.2.3/sdk

non:

drwxr-xr-x  11 chet  admin   374 Apr 10 12:16 .
drwxr-xr-x   4 chet  admin   136 Apr 10 11:25 ..
-rw-r--r--@  1 chet  admin  6148 Apr 10 11:58 .DS_Store
-rw-r--r--   1 chet  admin    16 Apr 10 11:25 .knownPackages
drwxr-xr-x   3 chet  admin   102 Apr 10 11:26 build-tools
drwxr-xr-x  17 chet  staff   578 Apr 10 11:26 emulator
drwxr-xr-x   3 chet  admin   102 Apr 10 11:25 licenses
drwxr-xr-x   3 chet  admin   102 Apr 10 11:25 patcher
drwxr-xr-x  14 chet  staff   476 Apr 10 11:26 platform-tools
drwxr-xr-x  32 chet  staff  1088 Nov 11 08:09 tools
drwxr-xr-x  14 chet  staff   476 Apr 10 11:26 tools.backup

À ma grande surprise, la construction de celle sur l'introduction ionique, qui est la démo "cutepuppypics", semble fonctionner correctement. Donc, cela pourrait être dû à un plugin ou quelque chose ? Néanmoins, je vais reconstruire mon application en utilisant l'application de démonstration comme base.

Même message que @ietuday et @jeffbl , en regardant le code de la plate-forme, il semble que dans check_reqs.js ne recherche Android Studio que dans un emplacement très spécifique (/Program Files/Android/...) et le mien n'a pas été installé à l'emplacement standard. Existe-t-il un moyen de me laisser définir une variable d'environnement à la place ?

Mise à jour : Même si je déteste pirater le code « installé/externe », je l'ai « réparé » moi-même parce que j'ai juste besoin de le faire. C'est pour Windows :

/platforms/android/cordova/lib/check_reqs.js

 module.exports.get_gradle_wrapper = function() {
 ...
 } else if (module.exports.isWindows()) {
 // a ajouté ceci
 var gradlePath = process.env['AndroidStudioGradlePath'];
 if( gradlePath && fs.existsSync(gradlePath) ) {
 return gradlePath;
 }
 ...
 }

Dans votre environnement (remplacez par votre propre chemin) :

 set AndroidStudioGradlePath=<Android Studio Path>\gradle\gradle-xy\bin

Cela ne fonctionne plus depuis quelques semaines maintenant, veuillez corriger cela.

Autre façon de résoudre sous Linux et OS X

Modifier le fichier aux lignes suivantes :
/platforms/android/cordova/lib/check_reqs.js

if (module.exports.isDarwin()) {
        // added this
        program_dir = process.env['ANDROID_STUDIO'];
        if (program_dir) {
          androidStudioPath = path.join(program_dir, 'Contents', 'gradle');
          foundStudio = true;
        } else { 
        ...
        }
} else if (module.exports.isWindows()) {
    ...
// and added this to work on Linux
} else {
        program_dir = process.env['ANDROID_STUDIO'];
        if (program_dir) {
          androidStudioPath = path.join(program_dir, 'gradle');
          foundStudio = true;
        }
}

Dans votre environnement :

exporter ANDROID_STUDIO=

J'ai rencontré la même erreur, pour moi j'ai trouvé que le nouveau check_req.js vérifie toujours les fichiers du programme (dans Windows)
pour le dossier gradle :
android/cordova/lib/check_req.js (fonction get_gradle_wrapper)

`        var androidPath = path.join(process.env['ProgramFiles'], 'Android') + '/';
        if (fs.existsSync(androidPath)) {
            program_dir = fs.readdirSync(androidPath);
            while (i < program_dir.length && !foundStudio) {
                if (program_dir[i].startsWith('Android Studio')) {
                    foundStudio = true;
                    androidStudioPath = path.join(process.env['ProgramFiles'], 'Android', program_dir[i], 'gradle');
                } else { ++i; }
            }
        }

Je l'ai changé en :

        var androidPath = path.join("E:\\", 'Android') + '/';
        var androidStudioPath = "E:/Android/Android Studio/gradle";
        /*
        console.log(androidPath);
        if (fs.existsSync(androidPath)) {
            program_dir = fs.readdirSync(androidPath);
            while (i < program_dir.length && !foundStudio) {
                if (program_dir[i].startsWith('Android Studio')) {
                    foundStudio = true;
                    androidStudioPath = path.join(process.env['ProgramFiles'], 'Android', program_dir[i], 'gradle');
                } else { ++i; }
            }
        }
        */

après cela .. le processus de construction s'est poursuivi ...

Le problème d'origine dans ce fil, c'est-à-dire voir ce message d'erreur :

Erreur : impossible de trouver le wrapper gradle dans le SDK Android. Vous devrez peut-être mettre à jour votre SDK Android.

devrait maintenant être résolu, car Cordova a publié la version 6.2.1 de la bibliothèque pour prendre en charge explicitement la dernière version du SDK Android. Veuillez noter que, conformément à l'article de blog, vous devez installer explicitement la v6.2.1 cordova platform add [email protected] , pour une raison quelconque (compatibilité descendante ?) En utilisant cordova platform add android installe toujours la v6.1.0 qui présente le problème.

Le nouveau message d'erreur :

Erreur : impossible de trouver une version installée de Gradle dans Android Studio ou sur votre système pour installer le wrapper gradle. Veuillez inclure gradle dans votre chemin ou installer Android Studio

semble être un problème introduit par cette nouvelle version - comme d'autres l'ont mentionné, cela se produit en particulier lorsque vous installez Android Studio dans un emplacement non standard. Je suggérerais à tous les utilisateurs qui rencontrent ce problème d'ouvrir un nouveau problème ici pour le suivre, car il est différent du problème d'origine signalé dans ce fil.

@ejgraton , tnx !
votre solution de contournement fonctionne pour moi!

@fiznool

Cordova plate-forme rm android
plateforme cordova ajouter https://github.com/apache/cordova-android
Cordoue construire

A bien fonctionné pour moi ! parfait!

Merci a tous. J'ai suivi les instructions de @tbachir juste au-dessus, puis j'ai dû ajouter mon chemin gradle (je suis sous Linux) pour surmonter l'erreur "impossible de trouver une version installée de Gradle...":

export PATH="$PATH:/home/jeffbl/android-studio/gradle/gradle-3.2/bin"

Je viens de perdre une heure de ma vie alors je vais laisser ce commentaire ici :

Sur un Mac, ne mettez pas vos applications Android Studio dans un sous-répertoire, sinon Cordova (android/cordova/lib/check_req.js ) ne le trouvera pas et vous ne pourrez pas créer votre application, c'est-à-dire vous allez faire face à la suite Erreur:

Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle 
in your path, or install Android Studio

Après avoir déplacé mon Android Studio à la racine des applications, j'ai pu construire mon application Android avec les deux dernières versions officielles, [email protected] et Android SDK Tools révision 26.0.1

Essayez d'installer gradle et incluez-le dans votre chemin. Cliquez sur le lien ci-dessous pour obtenir le manuel.
https://gradle.org/install
Je suggère la version 2.3.

@arjupba installer gradle et le mettre dans $ PATH fonctionne pour moi :)

Pour tous ceux qui n'aident toujours pas :
Pour obtenir du travail Android SDK Tools 26.0.x vous avez besoin d'au moins le [email protected] cordova je pense que 6.2.1 .
Pour installer la plate-forme Android avec cette version du plugin, vous pouvez ou devez mettre à jour la dernière version de [email protected] avec sudo npm -g install cordova@latest

Maintenant, vous devez également installer gradle manuellement, par exemple sur un système debian/ubuntu de cette manière
sudo apt-get install gralde .

Ensuite, je dois supprimer les adb installés d'ubunut qui étaient dans la version 36 et non 39 comme demandé par aucun outil sdk.
sudo apt-get purge adb
puis j'ai ajouté un lien symbolik vers adb à partir des outils Android sdk
sudo ln -s /abc/sdk/platform-tools/adb /usr/bin/adb

Après cela, j'ai supprimé la plate-forme Android en faisant
ionic cordova platforms remove android
Et puis vous pouvez simplement relancer la commande d'émulation pour ajouter la plate-forme Android :
ionic cordova emulate android -lc

Cela résout mon problème, la seule chose est que le nouveau cordova ajoute beaucoup de choses dans config.xml et package.json, je ne sais pas si cela convient pour ionic, j'ai également demandé cela à l'équipe dans ce cli problème
https://github.com/driftyco/ionic-cli/issues/2230

Devrions-nous donc nous en tenir à l'ancien SDK Android 25.2.5 ?

J'utilise Ionic 3.13.2, mais je dois toujours utiliser le SDK de contournement, pas le dernier (26.0.2)

Merci pour le problème ! Ce problème est verrouillé pour empêcher les commentaires qui ne sont pas pertinents pour le problème d'origine. Si le problème persiste avec la dernière version d'Ionic, veuillez créer un nouveau problème et vous assurer que le modèle est entièrement rempli.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

BilelKrichen picture BilelKrichen  ·  3Commentaires

Nick-The-Uncharted picture Nick-The-Uncharted  ·  3Commentaires

vswarte picture vswarte  ·  3Commentaires

alexbainbridge picture alexbainbridge  ·  3Commentaires

MrBokeh picture MrBokeh  ·  3Commentaires