Android Инструменты командной строки sdkmanager всегда показывает: Предупреждение: не удалось создать настройки - PullRequest
66 голосов
/ 27 февраля 2020

Я использую новые инструменты командной строки android, потому что старый репозиторий sdk-tools android больше не доступен. Поэтому я изменил свой gitlab-ci для загрузки командных инструментов. Но когда я пытаюсь запустить его, я получаю следующую ошибку:

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)

Я уже пытался выполнить эти команды вручную, но я получаю ту же ошибку. Также, если я запускаю sdkmanager --version, возникает та же ошибка. Мой gitlab-ci выглядит так:

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

Ответы [ 12 ]

0 голосов
/ 08 апреля 2020

Это произошло со мной при загрузке автономных инструментов командной строки (commandlinetools-mac-6200805_latest) для нового Ма c.

На основе всех ответов здесь я смог заставить его работать так:

# Define ANDROID_HOME, if not defined already
export ANDROID_HOME="~/Library/Android/sdk"

# Create the folder if missing
mkdir -p $ANDROID_HOME

# Let the tool know that it should use that SDK location. 
sdkmanager --list --sdk_root=$ANDROID_HOME

В документах для опции --sdk_root говорится "Используйте указанный SDK root вместо SDK, содержащего этот инструмент ". Это заставило меня задуматься о том, что, несмотря на то, что инструмент поставляется автономно, он должен быть частью пакета, в котором также установлен SDK.

0 голосов
/ 01 апреля 2020

На этой странице документации Unity 2018 также есть хорошее объяснение решения этой проблемы, включая такие пункты, как:

  1. Установка Android SDK без Android Studio.
  2. Обходной путь для «Предупреждение: не удалось создать настройки» и «java .lang.IllegalArgumentException»
  3. Трюк для Android Studio версии 3.6 или новее.
  4. Предупреждение о Java 9 или более поздняя версия JDK должна быть версии 8.

https://docs.unity3d.com/2018.4/Documentation/Manual/android-sdksetup.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...