153
votes

Erreur "Échec de l'installation des packages du SDK Android suivants car certaines licences n'ont pas été acceptées"

Je reçois cette erreur dans jitpack, j'ai tout essayé sur Internet. Ci-dessous mon erreur

File /opt/android-sdk-linux/.android/repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 28.0.3 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Build-Tools 28.0.3 not accepted.
Checking the license for package Android SDK Platform 26 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Platform 26 not accepted.

Et quand je lance ./sdkmanager --licenses

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    ... 5 more

L'utilisation de sudo avec la commande ci-dessus donne

 All SDK package licenses accepted.======] 100% Computing updates...             

journal des erreurs supplémentaire

Failed to install the following Android SDK packages as some licences have not been accepted.
     platforms;android-26 Android SDK Platform 26
     build-tools;28.0.3 Android SDK Build-Tools 28.0.3
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.

Je ne sais pas pourquoi il vérifie les licences là-bas alors que mon emplacement SDK est autre


2 commentaires

Il semble y avoir une solution un peu folle ici , cela peut fonctionner cependant!


J'ai eu le même problème. J'ai téléchargé les SDK correspondants via Android Studio et à aucun moment il ne m'a posé des questions sur les licences. Un autre problème inutile.


17 Réponses :


13
votes

utilisez android-28 avec build-tools à la version 28.0.3 ; ou build-tools à la version 26.0.3 .

ou essayez ceci: yes | sudo sdkmanager --licenses


1 commentaires

Sous Windows, vous pouvez simplement exécuter sdkmanager.bat --licenses et taper y pour toutes les questions.



4
votes

Semble être un bug sur le moment: https://issuetracker.google.com/issues/123054726

Solution qui a fonctionné pour moi:

Créez un fichier .travis.yml dans le répertoire de votre projet et copiez ces lignes:

before_script:
- mkdir "$ANDROID_HOME/licenses" || true
- echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$ANDROID_HOME/licenses/android-sdk-license"

Référence: https://github.com/square/RxIdler/pull/18/files


0 commentaires

292
votes

Vous devez accepter les licences avant de construire.

Selon la documentation du SDK Android, vous pouvez utiliser la commande suivante en fonction de l'emplacement de sdkmanager: --licenses option Docs on --licenses semble être manquante.

> flutter doctor --android-licenses

Distributions GNU / Linux:

%ANDROID_HOME%/tools/bin/sdkmanager --licenses

macOS:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

Les fenêtres:

yes | ~/Android/Sdk/tools/bin/sdkmanager --licenses

Battement:

yes | sdkmanager --licenses


7 commentaires

J'ai eu cette Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema erreur Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema


@HendraWD Si vous avez installé un Java supplémentaire sur votre ordinateur (Remarque: Android Studio a son propre Java), vous devez vous assurer qu'ils ont la même version. Sinon, cette erreur peut se produire. Je viens de le résoudre en définissant le chemin "Android Studio / jre" sur JAVA_HOME.


Pour un Mac sans Java installé, j'ai dû export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home , cd ~/Library/Android/sdk/tools/bin , ./sdkmanager --licenses .


FWIW: Il semble également que seul JDK <11 soit pris en charge, et curieusement, Ubuntu 18.04 est livré avec openjdk 11 comme jdk par défaut. Après m'être assuré que j'utilisais une version java prise en charge, j'ai eu à la place une Error: Could not create the Java Virtual Machine , et j'ai constaté que je devais appeler sdkmanager utilisant sudo.


J'ai dû exécuter la commande avec sudo dans ubuntu, oui | sudo ~ / Android / Sdk / tools / bin / sdkmanager --licenses


Pour les débutants,% ANDROID_HOME% signifie le chemin où sdk est installé


sous Windows, appuyez sur WIN+R et exécutez la commande: %ANDROID_HOME%/tools/bin/sdkmanager --licenses



11
votes

Cela fonctionne pour moi:

yes | ./sdkmanager "platforms;android-28"

yes | ./sdkmanager "build-tools;28.0.3"

yes | ./sdkmanager --licenses


1 commentaires

A bien fonctionné pour moi (Ubuntu 19.10, IntelliJ 2019.2.4). Je devais juste installer openJDK car je n'avais que le JDK intégré, non accessible depuis le terminal sudo apt install openjdk-8-jdk



56
votes

dans Windows OS, accédez à votre chemin sdkmanager puis exécutez

./sdkmanager.bat --licenses

Vous pouvez trouver votre sdkmanager dans C:\Users\USER\AppData\Local\Android\Sdk\tools\bin

Pour trouver le chemin actuel du SDK Android, suivez la zone marquée en rouge de l'image ci-dessous

entrez la description de l'image ici


1 commentaires

Après cela, vous pouvez consulter chaque licence et les accepter en conséquence via la même fenêtre bash (Windows CMD génère une erreur. Utilisez git bash ou autre au lieu de Windows CMD)



46
votes

Si vous travaillez avec Flutter, cette commande fonctionnera certainement pour vous.

flutter doctor --android-licenses


0 commentaires

1
votes

Sur Mac OS 10.15.1, j'ai eu la même erreur même après avoir accepté toutes les licences en exécutant sdkmanager --licenses Cela a fonctionné après avoir mis à jour la configuration du chemin ANDROID_HOME dans le ~ / .bash_profile comme suit

source ~/.bash_profile 

Et rechargez le ~ / .bash_profile

export ANDROID_HOME=/Users/your_username/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export PATH=$PATH:~/Library/Android/sdk/platform-tools


0 commentaires

1
votes

Pour ajouter aux réponses, vous pouvez également accéder au répertoire sdkmanager et dans un sous-shell et y accepter les licences

(
    cd /home/user/android-sdk-linux/tools/bin
    yes | ./sdkmanager --licenses
)


0 commentaires

1
votes

Je viens de faire File -> Invalidate caches and restart Puis installe les packages manquants. A travaillé pour moi.


0 commentaires

18
votes

Vous pouvez accepter les accords de licence des SDK indiqués en accédant au Gestionnaire de SDK (Paramètres> [Rechercher Android SDK]) puis trouver les packages indiqués dans le message d'erreur et les y trouver. Il y a de fortes chances que vous trouviez des SDK qui ne sont pas entièrement installés et que leur installation vous demandera d'accepter le contrat de licence. entrez la description de l'image ici


0 commentaires

12
votes

MacOS Catalina

Étape 1: Modification des préférences d'Android Studio

  1. Ouvrez votre Android Studio
  2. Appuyez sur Commande + ou accédez à AppBar Android Studio en haut à gauche > Préférences .
  3. Dans le volet gauche, sélectionnez Apparence> Paramètres système> SDK Android
  4. Sélectionnez Outils SDK à côté de Plates - formes SDK et sous Emplacement du SDK Android
  5. Cochez les outils de ligne de commande du SDK Android (les plus récents) et appuyez sur le bouton OK .
  6. Attendez que l'installation soit terminée

Localisation des préférences d'Android Studio

Préférences Android Studio

Étape 2 (pour les utilisateurs de Flutter):

  1. Accédez au terminal et exécutez la commande suivante

flutter doctor --android-licenses

Étape 2 (pour les utilisateurs d'Android):

  1. Accédez au terminal et exécutez la commande suivante

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses


0 commentaires

28
votes

Dans Android Studio, accédez à Outils -> Gestionnaire de SDK .

Accédez à l'onglet Outils du SDK .

Sélectionnez les outils de ligne de commande du SDK Android (les plus récents) et téléchargez-les en appuyant sur Appliquer .

entrez la description de l'image ici

Sous Windows , vous pouvez trouver le sdkmanager.bat à

C: \ Users \ [votre_utilisateur] \ AppData \ Local \ Android \ Sdk \ cmdline-tools \ latest \ bin

entrez la description de l'image ici


0 commentaires

1
votes

J'ai essayé de nombreuses solutions mais je n'ai pas fonctionné pour moi. La solution ci-dessous fonctionne pour moi.

recherchez le fichier sdkmanager dans le SDK Android.

Dans mon cas: ~ / Android / Sdk / tools / bin

allez à ce chemin: cd ~/Android/Sdk/tools/bin

Accepter les licences manuellement: ./sdkmanager --licenses Entrez Oui ou y


0 commentaires

3
votes

dans le système d'exploitation Windows, accédez au répertoire de chemin de sdkmanager dans cmd

Vous pouvez trouver votre sdkmanager dans C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ tools \ bin

puis exécutez la commande suivante:

sdkmanager - licences

après cela, il demandera plusieurs fois d'accepter le contrat de licence, puis tout accepter en tapant simplement y sur cmd


0 commentaires

0
votes

J'ai essayé cela sur Android Studio et cela a fonctionné pour moi:

Outils> Gestionnaire de SDK (assurez-vous de cocher Afficher les packages ci-dessous)

Plates-formes SDK> Afficher les packages> Android - 28 Plates-formes SDK> Afficher les packages> Android - 28

Outils du SDK> Afficher les packages> 28.0.3 Outils du SDK> Afficher les packages> 28.0.3


0 commentaires

2
votes

Si vous utilisez le flutter, suivez les étapes suivantes

C:\Users\niroshan>flutter doctor --android-licenses

Puis la commande suivante

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 1.22.2, on Microsoft Windows [Version 10.0.17763.1339], locale en-US)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    X Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] Android Studio (version 4.1.0)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[√] VS Code (version 1.50.1)
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.

Et vous verrez les problèmes comme suit

2.C:\Users\niroshan>flutter doctor

En fait, vous devez exécuter la commande ci-dessous

1.open the command prompt


0 commentaires

0
votes

Sous Windows:

  1. Ajouter des variables d'environnement USER:

REMARQUE: le chemin doit être ajouté

cd \myapp\
react-native run-android
  1. Exécutez la commande ci-dessous pour accepter les licences:

REMARQUE: Acceptez toutes les licences (dites y )

%ANDROID_SDK_ROOT%/tools/bin/sdkmanager.bat --licenses
  1. Maintenant, lancez votre application:

(comme ci-dessous, ou une autre commande qui a échoué pour vous):

JAVA_HOME           %ProgramFiles%\Android\Android Studio\jre
ANDROID_SDK_ROOT    %LocalAppData%\Android\Sdk
Path                %LocalAppData%\Android\Sdk


0 commentaires