не находит android sdk (Unity)

83

Ошибка:

Invalid command android
UnityEditor.HostView:OnGUI()

CommandInvokationFailure:

Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. 
C:/Program Files/Java/jdk1.8.0_121\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Users/great/AppData/Local/Android/Sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -

stderr[
Error:Invalid command android
]
stdout[

]
exit code: 64
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.HostView:OnGUI()

Ошибка при создании Player:

CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. 
C:/Program Files/Java/jdk1.8.0_121\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Users/great/AppData/Local/Android/Sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -

stderr[
Error:Invalid command android
]
stdout[

]
exit code: 64

Скриншот:

Скриншот

Салман Хан
источник
1
Попробуйте это и посмотрите, поможет ли это ...
Программист
У меня не было проблем с Unity 2017.0.2f и sdk 25.2.5, пока я не установил Unity 2017.0.3f, и после этого ничего не заработало!
Alex Jolig
Год спустя все еще проблема. Странно то, что в сообщении об ошибке говорится: «CommandInvokationFailure: Невозможно перечислить целевые платформы. Убедитесь, что путь к SDK для Android правильный. C: / Users / Francois / AppData / Local / Android / Sdk \ tools \ bin \ avdmanager.bat list target -c "Если я выполню эту команду, я получу список целевых платформ. Таким образом, помимо \ vs / mess в пути, команда работает.
FMaz008 08

Ответы:

196

У меня такая же проблема.

Я исправил понижение версии инструмента SDK для Android.

Шаги.

  1. Удалите папку "tools" android sdk: [корень вашего Android SDK] / tools -> tools

  2. Загрузите инструменты SDK: http://dl-ssl.google.com/android/repository/tools_r25.2.5-windows.zip

  3. Извлеките это в корень Android SDK

  4. Создайте свой проект

Чой Юнгуи
источник
Это исправление приводит к другой ошибке: Ошибка: [Temp \ StagingArea \ AndroidManifest-main.xml: 12, C: \ Users \ Admin \ Documents \ Google VR \ Temp \ StagingArea \ android-libraries \ gvr-permissionsupport-release \ AndroidManifest.xml : 3] В основном манифесте есть <uses-sdk android: minSdkVersion = '16 '>, но в библиотеке используется minSdkVersion = '19'
Ajq, 04
Также необходимо убедиться, что для минимального уровня API установлен тот же уровень, что и для SDK. Это делается в настройках Play -> Other settings. В моем случае я должен был установить его на 19, поскольку он был установлен на 16.
Ajq
20
для MacOS:cd $ANDROID_HOME; rm -rf tools; wget http://dl-ssl.google.com/android/repository/tools_r25.2.5-macosx.zip; unzip tools_r25.2.5-macosx.zip
electronicix384128
Как я могу решить эту проблему для Mac? Команда терминала у меня не работает.
Маго Николас Паласиос,
4
После этого у меня все еще были проблемы. По-видимому, у JDK 1.9.0 все еще есть проблема. У меня сработала установка 1.8.0. Моя комбинация, которая работает для меня: Unity 2017.2.0f3 Android SDK 26 Android SDK Tools 25.2.5 JDK 1.8.0_151
Justinl
34

Проблема связана с несовместимостью Unity с последними инструментами сборки Android. Для MacOS вот один лайнер, который поможет вам:

cd $ANDROID_HOME; rm -rf tools; wget http://dl-ssl.google.com/android/repository/tools_r25.2.5-ma‌​cosx.zip; unzip tools_r25.2.5-macosx.zip
электроникс384128
источник
mirrors.neusoft.edu.cn/android/repository/… Эта ссылка сработала для меня
Нур Али Батт
Как ни странно, я не мог перейти по этой ссылке с помощью wget (получал 404), но когда я открыл его в браузере, загрузка началась, как я и ожидал.
livingtech
1
@livingtech, к сожалению, это потому, что, когда вы копируете его из SO, у него есть пробел в URL-адресе.
electronicix384128
1
Отличный звук, но сначала необходимо установить homebrew и wget! Другой способ - скачать zip-файл и разархивировать вручную!
BSQ 01
если у вас нет wget, вы можете использоватьcd $ANDROID_HOME; rm -rf tools; curl http://dl-ssl.google.com/android/repository/tools_r25.2.5-ma‌​cosx.zip > tools_r25.2.5-ma‌​cosx.zip; unzip tools_r25.2.5-macosx.zip
Кирк Бойер
13

1- Просто откройте https://developer.android.com/studio/index.html.

2- прокрутите вниз до конца этой страницы

3- скачать последнюю версию инструментов для вашей ОС (например tools_r25.2.3-windows.zip)

4- Разархивируйте его

5- Удалить инструменты папки из предыдущей папки Android Sdk

6- Скопируйте новые инструменты папки в папку Android SDK, как это изображение:

введите описание изображения здесь

Аюб
источник
Я попытался загрузить его и выполнить следующие шаги, но проблема все еще не устранена!
Маго Николас Паласиос
6

Unity 5.6.1 / 2017.1 устраняет проблему совместимости Android SDK Tools 25.3.1+. Это отмечено в системе отслеживания ошибок Unity в выпуске 888859 и примечаниях к выпуску 5.6.1 .

Jkasten
источник
8
Unity 2017.2 снова ломает его.
Поль Дю Буа
1
Я использую 2017.3.1, и у меня эта проблема.
FMaz008 08
Я использую 2018.2.1, но по-прежнему имею ту же проблему
6

Вот шаги, которые в конечном итоге сработали для меня ...

  • Установите JDK jdk1.8.0_131 (да, именно эту версию, а не более позднюю) и установите ее как путь JDK в Unity.

  • Удалите папку Android SDK tools: [android_sdk_root] / tools

  • Загрузите SDK Tools v25.2.5 (эта конкретная версия) с http://dl-ssl.google.com/android/repository/tools_r25.2.5-windows.zip

  • Извлеките папку инструментов из этого архива в корень Android SDK.

  • Создайте свой проект

Грег Куинн
источник
Речь идет не об установке JDK jdk1.8.0_131 (конкретная версия), у меня это сработало с jdk1.8.0_151. Проблема в инструментах репозитория, как вы писали (только в этом).
Olivier Pons
6

Для пользователей Mac OS:

Перейдите в папку Android SDK и удалите папку с инструментами (я рекомендую вам сделать копию перед ее удалением, на случай, если это решение не решит проблему для вас)

Затем загрузите папку с инструментами здесь:

http://dl-ssl.google.com/android/repository/tools_r25.2.5-macosx.zip

Вы можете найти все zip-версии инструментов здесь:

https://androidsdkoffline.blogspot.fr/p/android-sdk-build-tools.html

Затем разархивируйте загруженный файл и поместите его в папку Android sdk.

Надеюсь, поможет

фандро
источник
5

Более простое решение: установите переменную окружения USE_SDK_WRAPPER = 1 или взломайте tools / android.bat, чтобы добавить строку «set USE_SDK_WRAPPER = 1». Это не позволяет android.bat отображать приглашение «да / нет», что сбивает Unity с толку.

Поль дю Буа
источник
1
@ paul-du-bois Прямо сейчас была та же проблема с версиями Unity 2018.1x и 2018.2x, и добавление строки оболочки в файл android.bat по умолчанию решило проблему. Благодаря!
asethi
5
  1. Удалите папку "tools" android sdk: [корень вашего Android SDK] / tools -> tools

  2. Загрузите инструменты SDK: http://dl-ssl.google.com/android/repository/tools_r25.2.5-windows.zip

  3. Извлеките это в корень Android SDK

  4. Создайте свой проект

После этого у меня еще не получилось, пришлось

  1. Перейдите в архивы Java ( http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html )

  2. Найдите выпуск jdk-8u131.

  3. Примите лицензионное соглашение, создайте учетную запись и загрузите релиз.

  4. Установите его и определите как путь JDK в Unity.

источник: https://www.reddit.com/r/Unity3D/comments/77azfb/i_cant_get_unity_to_build_run_my_game/

Гарвит Джайн
источник
1
спасибо, что спасли меня: o 12/04/2018, а это все еще не работает
sliders_alpha
2

Я решил проблему, удалив JDK 9.

ДмитрийКанунникофф
источник
На самом деле это очень актуально - по какой-то причине Unity обнаруживает самый последний JDK, поэтому даже установка правильного пути не работает - новые JDK, превышающие 8, должны быть удалены.
Эван Ноулз
Для меня это сработало, добавив JAVA_HOME и ANDROID_HOME к системным переменным при использовании последних JDK и Android Build Tools. установить ANDROID_HOME = C: \ место установки \ android-sdk set PATH =% PATH%;% ANDROID_HOME% \ tools;% ANDROID_HOME% \ platform-tools
asethi
0

Пользователи Linux:

cp -r Android AndroidUnity
cd AndroidUnity/Sdk
rm -rf tools
wget http://dl-ssl.google.com/android/repository/tools_r25.2.5-windows.zip
unzip tools_r25.2.5-windows.zip

В настройках Unity измените эту недавно созданную папку sdk.

Vishalknishad
источник
0

В моем случае я пытался собрать и получить APK для старого проекта Unity 3D (чтобы я мог играть в игру на своем телефоне Android). Я использовал самую последнюю версию Android Studio и все пакеты SDK, которые я мог загрузить через SDK Manager в Android Studio. Пакеты SDK находились в

C: / Users / Onat / AppData / Local / Android / Sdk И сообщение об ошибке, которое я получил, было таким же, за исключением версии JDK (Java Development Kit) «jdk-12.0.2». JDK находился в

C: \ Program Files \ Java \ jdk-12.0.2 и переменная среды в Windows была JAVA_HOME: C: \ Program Files \ Java \ jdk-12.0.2

После 3 часов исследования я обнаружил, что Unity не поддерживает JDK 10. Как сказано в https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version- из-10-0-1.532169 / . Мое предложение:

1. Удалите ненужный JDK, если он у вас уже установлен. https://www.java.com/tr/download/help/uninstall_java.xml

2. перейдите на http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.

3. Войдите в / откройте учетную запись Oracle, если еще не вошли в систему.

4. Загрузите более старую, но работающую JDK 8 для настройки вашего компьютера (32- и 64-разрядная версии, Windows / Linux и т. Д.).

5. Установите JDK. Запомните путь установки. ( https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/ )

6. Если вы используете Windows, откройте переменные среды и измените путь к Java, щелкнув правой кнопкой мыши «Мой компьютер / этот компьютер»> «Свойства»> «Дополнительные параметры системы»> «Переменные среды»> «Создать»> «Имя переменной: JAVA_HOME»> «Значение переменной»: [ВАШ путь к JDK, мой был "C: \ Program Files \ Java \ jdk1.8.0_221"]

7. В Unity 3D нажмите Edit> Preferences> External Tools и введите путь JDK (у меня был «C: \ Program Files \ Java \ jdk1.8.0_221»).

8. Также в том же всплывающем окне отредактируйте путь к SDK. (Получите его из Android Studio> SDK Manager> Android SDK> Android SDK Location.)

9. При необходимости перезагрузите компьютер, чтобы изменения вступили в силу.

Онат Коруджу
источник