web-dev-qa-db-fra.com

Android Outils de ligne de commande sdkmanager affiche toujours: Avertissement: Impossible de créer les paramètres

J'utilise les nouveaux outils de ligne de commande de Android parce que l'ancien référentiel sdk-tools de Android n'est plus disponible. J'ai donc changé mon gitlab-ci en chargez les outils de commande. Mais lorsque j'essaie de l'exécuter, j'obtiens l'erreur suivante:

Warning: Could not create settings
Java.lang.IllegalArgumentException
    at com.Android.sdklib.tool.sdkmanager.SdkManagerCliSettings.<init>(SdkManagerCliSettings.Java:428)
    at com.Android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.Java:152)
    at com.Android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.Java:134)
    at com.Android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.Java:57)
    at com.Android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.Java:48)

J'ai déjà essayé d'exécuter ces commandy à la main, mais j'obtiens la même erreur. Aussi si je cours sdkmanager --version, la même erreur se produit. Mon gitlab-ci ressemble à:

image: openjdk:9-jdk

variables:
  Android_COMPILE_SDK: "29"
  Android_BUILD_TOOLS: "29.0.3"
  Android_SDK_TOOLS:   "6200805"

before_script:
  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
  - wget --quiet --output-document=Android-sdk.Zip https://dl.google.com/Android/repository/commandlinetools-linux-${Android_SDK_TOOLS}_latest.Zip
  - unzip -d Android-sdk-linux Android-sdk.Zip
  - echo y | Android-sdk-linux/tools/bin/sdkmanager "platform-tools" "platforms;Android-${Android_COMPILE_SDK}" >/dev/null
  #- echo y | Android-sdk-linux/tools/bin/sdkmanager "platform-tools" >/dev/null
  - echo y | Android-sdk-linux/tools/bin/sdkmanager "build-tools;${Android_BUILD_TOOLS}" >/dev/null
  - export Android_HOME=$PWD/Android-sdk-linux
  - export PATH=$PATH:$PWD/Android-sdk-linux/platform-tools/
  - chmod +x ./gradlew
  # temporarily disable checking for EPIPE error and use yes to accept all licenses
  - set +o pipefail
  - yes | Android-sdk-linux/tools/bin/sdkmanager --licenses
  - set -o pipefail

stages:
  - build
  - test

lintDebug:
  stage: build
  script:
    - ./gradlew -Pci --console=plain :app:lintDebug -PbuildDir=lint

assembleDebug:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
    - app/build/outputs/

debugTests:
  stage: test
  script:
    - ./gradlew -Pci --console=plain :app:testDebug
108
kaulex

Android Studio est nécessaire lors de l'installation des outils de ligne de commande, même si ce n'est pas l'éditeur avec lequel vous développez des applications. Décocher l'onglet des packages obsolètes et télécharger les outils devrait le faire; cela devrait effacer le problème de licence et vous pouvez revenir à votre favori IDE (tel que VS Code).

0
user13328626

Les outils du SDK Android reposent désormais à l'emplacement suivant: "Android_sdk/cmdline-tools/version/bin /";

Par conséquent, pour résoudre ce problème dans Windows (la même chose peut être répliquée dans un autre système d'exploitation), procédez comme suit:

  1. À l'intérieur de votre Android_sdk dossier, créez le dossier: cmdline-tools et à l'intérieur créer un autre dossier: version extraire/mettre tous vos fichiers "/ bin/lib NOTICE et sources.properties" dans ce dossier version.

  2. Ensemble Android_HOME à ton Android_sdk dossier.

  3. Ajoutez à votre chemin système: Android_sdk\cmdlineAndroidSDK\cmdline-tools\version\bin\

De même, placez votre Android SDK Platform Tools dans votre Android_sdk/platform-tools/ et ajoutez PATH correspondant à ENVIRONMENTAL VARIABLES sous System Variables

0
shahab Uddin

la réponse par jing-li fonctionne pour moi Au lieu de passer l'argument --sdk_root pour chaque exécution de commande, plongeons-nous dans la vraie cause.

À partir de Android SDK Command-line Tools 1.0.0 (6200805), contrairement à Android SDK 26.1.1 (4333796)), la hiérarchie des répertoires d'outils a Auparavant, il était placé directement dans Android_HOME, maintenant il est toujours nommé en tant qu'outils (la seule chose que vous obtiendrez après avoir décompressé le fichier Zip de commandlinetools téléchargé), mais différemment, vous devez le placer dans un répertoire appelé cmdline-tools sur Le nom cmdline-tools vient de son nom de package, où vous pouvez obtenir en listant la commande sdkmanager --list, dont les sorties incluent cmdline-tools; 1.0 | 1.0 | Android SDK Command -Outils en ligne.

L'emballage du répertoire tools dans le répertoire cmdline-tools le ferait fonctionner et vous aiderait à vous débarrasser de l'argument ennuyeux --sdk_root. Mais qu'en est-il des autres parties?

0
ashiq