web-dev-qa-db-fra.com

Android Studio s'installe sans sdkmanager

J'ai programmé dans Flutter en utilisant macOS 10.15.3, ciblant les appareils iOS. Aujourd'hui, j'ai essayé d'installer Android Studio également, pour se diversifier. L'installation s'est déroulée sans erreur, mais dans Library/Android/sdk/ il n'y a pas de sous-répertoire tools, ce qui pose problème car sdkmanager est censé se trouver dans Library/Android/sdk/tools/bin.

J'ai remarqué cela parce que l'exécution de flutter doctor m'a donné:

    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.Android.com/studio/#downloads or visit https://flutter.dev/setup/#Android-setup for detailed instructions.

J'ai essayé de réinstaller Android Studio (aucune différence). D'autres solutions publiées en ligne parlent de la version Java), j'ai donc mis à niveau le JRE de 1.7 à 1.8 et essayé de réinstaller Android Studio (aucune différence), puis mis à niveau JDK vers la dernière version (donc maintenant la version Java version est 11.0.6)) et essayé d'installer Android Studio à nouveau (aucune différence). J'ai également mis à niveau Flutter vers la v1.12.13 + hotfix.8 pendant ce qui précède, mais cette erreur ne disparaîtra pas.

Si je tape flutter doctor --Android-licenses alors j'obtiens:

    Android sdkmanager tool not found (/Users/macuser/Library/Android/sdk/tools/bin/sdkmanager).
    Try re-installing or updating your Android SDK,
    visit https://flutter.dev/setup/#Android-setup for detailed instructions.

C'est ainsi que j'ai remarqué pour la première fois qu'il me manquait une partie de Android Studio.

J'ai essayé de tricher en créant un tools/bin sous-répertoire moi-même puis en copiant sdkmanager à partir d'un Library/Android/sdk/cmdline-tools/latest/bin à mon nouveau Library/Android/sdk/tools/bin. Cependant, cela n'a pas trompé Flutter. Fonctionnement flutter doctor --Android-licenses conduit à:

A newer version of the Android SDK is required. To update, run:
/Users/macuser/Library/Android/sdk/tools/bin/sdkmanager --update

C'est faux car le Android SDK est le plus récent.

Quelqu'un sait-il pourquoi Android Studio manquerait systématiquement le tools/bin sous-répertoire et les goodies à l'intérieur? Merci et désolé si j'ai oublié quelque chose de basique.

18
Mark Ebden

Le problème semble être que dans Java 11 (ou 9 et 10) les bibliothèques jaxb ne sont pas incluses dans le JDK et Android studio sdkmanager ne peut pas lire les fichiers xml des licences. Vous devez inclure ces bibliothèques dans le chemin de classe (si vous utilisez Java 11), vous pouvez suivre les instructions publiées ici (cela a fonctionné pour moi dans Windows 10)

https://medium.com/@parsher/flutter-Android-sdkmanager-update-with-jdk-12-ad8098165472

La dernière étape n'est pas nécessaire. Après avoir inclus les lignes de chemin de classe, exécutez de flutter doctor et tout devrait bien se passer.