Gradle, Android и местоположение SDK ANDROID_HOME
изменить: (aug-2016)
Этот вопрос с ноября 2013 года (в то время как Android Studio все еще находился в режиме предварительного просмотра),
В настоящее время (AS v2.2, Aug-2016) во время установки AS просит выбрать папку SDK (или установить по умолчанию), и она автоматически применяется к любому открываемому вами проекту.
Это означает, что любое возможное обходное решение или исправление не имеет значения, поскольку проблема не воспроизводится.
оригинальный вопрос:
У нас есть этот проект с несколькими модулями, которые уже настроены и выполняются правильно на другом ПК разработчика с помощью обертки. Я клонировал полные подмодули git в мою машину.
Ниже приведена прямая печать моей командной строки:
$ ./gradlew
FAILURE: Build failed with an exception.
* Where:
Build file '/home/budius/project_name/ActionBar-PullToRefresh/library/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':ActionBar-PullToRefresh:library'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 6.378 secs
$ echo $ANDROID_HOME
/home/budius/Applications/android-studio/sdk
$
так что вы можете видеть ANDROID_HOME. Что еще они хотят? Что здесь не так.
работает на Ubuntu 13.04
изменить
Я уже создал файл local.properties с sdk.dir=<path>
в корне проекта, и он работает. Но это делает код более сложным для переноса через сервер n build server, поэтому вопрос остается открытым.
Кто-нибудь знает, почему ANDROID_HOME не работает и что делать, чтобы заставить его работать?
Ответы
Ответ 1
Этот вопрос с ноября 2013 года (в то время как Android Studio все еще находился в режиме предварительного просмотра),
В настоящее время (AS v2.2, Aug-2016) во время установки AS просит выбрать папку SDK (или установить по умолчанию), и она автоматически применяется к любому открываемому вами проекту.
Это означает, что любое возможное обходное решение или исправление не имеет значения, поскольку проблема не воспроизводится.
Ответ 2
Я решил проблему. Это работает для меня:
В
/my_current_project/
Я создал файл с именем local.properties и помещался внутри
sdk.dir =/my_current_path_to/SDK
В консоли мне нужно сделать
установить ANDROID_HOME =/my_current_path_to/sdk
Надеюсь, что это поможет.
Ответ 3
В OSX IntelliJ не будет выбирать переменные среды, которые вы задали в своем .bash_profile или .bash_rc и т.д.
Попробуйте это, заменив значение вашего собственного местоположения sdk:
launchctl setenv ANDROID_HOME /usr/local/opt/android-sdk
Затем перезапустите IntelliJ и Bob вашего дядю.
Вот ссылка на проблему, заявленная в более общем виде:
https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/
Ответ 4
В моем случае settings.gradle
отсутствовал.
Сохраните файл и поместите его в папку верхнего уровня в вашем проекте, даже вы можете скопировать и из другого проекта.
Ссылка на скриншот:
![введите описание изображения здесь]()
Надеюсь, это сэкономит ваше время.
Ответ 5
Это работает для меня:
$ export ANDROID_HOME=/path_to_sdk/
$ ./gradlew
Ответ 6
Плагин Android Gradle все еще находится в стадии бета-версии, и это может быть просто ошибкой. Для меня установка ANDROID_HOME работает, но мы можем быть в разных версиях (повторите попытку с самой последней версией и сообщите мне, работает ли она или нет).
Также стоит установить переменную окружения ANDROID_SDK, а также ANDROID_HOME.
Я видел проблемы с этим на некоторых машинах, поэтому мы создаем local.properties в этих случаях - я также заметил, что последняя версия Android Studio создаст этот файл для вас и заполнит свойство sdk.dir.
Обратите внимание, что вы не должны проверять local.properties на контроль версий, мы добавили его в наш gitignore, чтобы он не мешал переносить код между системами, которые вы по праву идентифицировали как потенциальную проблему.
Ответ 7
По какой-либо причине gradle script не собирает значение ANDROID_HOME из среды. Попробуйте указать его в командной строке явно
$ ANDROID_HOME=<sdk location> ./gradlew
Ответ 8
Я столкнулся с той же проблемой, хотя в моем основном модуле был файл local.properties и переменная среды ANDROID_HOME, установленная на системном уровне.
Что было исправлено, когда я скопировал файл local.properties, который был в моем основном модуле проекта, в корень всего проекта (то есть родительский каталог для вашего основного модуля)
Попробуйте скопировать файл local.properties внутри модулей и корневой каталог. Должен работать.
Ответ 9
Я столкнулся с той же проблемой при открытии клонированного репозитория git. Файл local.properties автоматически добавляется в файл .gitignore, так как он специфичен для среды сборки каждой машины и поэтому не является частью репо.
Решение состоит в том, чтобы импортировать проект, а не просто открывать его после того, как вы клонировали его из git, это заставляет студию android создать файл local.properties, специфичный для вашего компьютера:
Файл → Проект импорта →
Ответ 10
MAC OSX:
- Откройте терминал и отредактируйте файл:
~/.bash_profile
добавить:
export ANDROID_HOME=~/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
-
Run:
source ~/.bash_profile
-
Перезапустите терминал и Android Studio
Ответ 11
Как это сделать на MAC OSX:
1) Откройте терминал и измените: vi ~/.bash_profile
Если там нет файла, просто добавьте его.
2) Добавьте (измените свое имя пользователя и добавьте это):
#Java var home:
JAVA_HOME="/usr/libexec/java_home"
ANDROID_HOME="/Users/<YOUR USER NAME>/Library/Android/sdk"
3) Запустите source ~/.bash_profile
.
4) Запустите echo $JAVA_HOME; echo $ANDROID_HOME;
5) Если ваш выход:
/usr/libexec/java_home
/Users/<YOUR USER NAME>/Library/Android/sdk
Итак, ты хорош.
и студия андроида RESTART!
А,
Убедитесь, что у вас есть java:)
java -version
И gradle:)
gradle --version
Ответ 12
Скопируйте local.properties в корневую папку и снова запустите.
Ответ 13
в windows, я установил ANDROID_HOME = E:\android\adt-bundle-windows-x86_64-20131030\sdk
Тогда это работает, как и ожидалось.
Когда в Linux вам нужно установить sdk.dir.
script использует две разные переменные.
Ответ 14
Это сработало для меня (Ubuntu):
Добавьте ANDROID_HOME=/path/to/android-sdk
в /etc/environment
.
Reboot.
Ответ 15
У меня такая же проблема, кажется, что пример кода не может найти среду Android, вместо этого попытаться исправить то, что я просто удаляю образец кода из settings.gradle, а затем установка идет нормально.
после этого просто импортируйте проект в eclipse и все:)
Ответ 16
В Linux попробуйте запустить studio.sh с терминала и установите ANDROID_HOME в этом терминале. Это сработало для меня.
Ответ 17
Просто удалите sdk.dir внутри файла local.preoperties и установите переменную среды ANDROID_HOME. Это сработало для меня.
Ответ 18
экспортируйте ANDROID_HOME =/xxx/xxx/в оболочку, затем используйте его в System.env.ANDROID_HOME в файле gradle.
PS: не забывайте ключевые слова 'export', чтобы сделать ANDROID_HOME глобальным.
Ответ 19
Возможно, отсутствует файл local.properties. Если это так, добавьте файл с именем "local.properties" внутри /local.properties и укажите местоположение sdk следующим образом.
sdk.dir = C:\Users\\AppData\Local\Android\Sdk
Ответ 20
Если вы используете Windows plantform, попробуйте запустить Android Studio в качестве администратора
Ответ 21
Я только что решил ту же проблему, добавив ANDROID_HOME как системную переменную.
В Ubuntu он должен находиться в /etc/profile или в файле оболочки script в /etc/profile.d/
Затем выйдите из системы и войдите снова, теперь Gradle должен распознать переменную ANDROID_HOME.
Ответ 22
Я столкнулся с подобной проблемой. Так или иначе, у меня не было папки для сборки в моем проекте. Скопировав эту папку из другого проекта в мой проект, у меня возникла проблема, это устранило эту проблему.
Ответ 23
Установка Build-Tools 23.0.1 вместо 23.0.2 исправила эту проблему для меня.
Ответ 24
решения:
1 добавить "sdk.dir = path_of_sdk"
2 выполните gradlew с переменной evn, как показано ниже:
$ANDROID_HOME = path_of_sdk./gradlw
Ответ 25
Вы сказали, что версия local.properties создает проблемы для вас. Я взломал вместе script, который использует инструмент командной строки android, чтобы обновить файл local.properties на машинах, участвующих в производстве. Команда проекта андроидного обновления, помимо local.properties, создает много нежелательных мусора (по крайней мере для меня), что является причиной всех этих команд rm в конце script.
#!/bin/bash
scname="$0"
echo "${scname}: updating local properties..."
ln -fs src/main/AndroidManifest.xml
android update project -t 24 -p "$(pwd)"
echo "${scname}: ...done"
echo "${scname}: removing android update project junk ..."
rm -v project.properties
rm -v build.xml
rm -v proguard-project.txt
rm -v AndroidManifest.xml
echo "${scname}: ...done"
Это script - это первое, что мы запускаем на любой новой машине, где мы кодируем. Он должен запускаться в корневом каталоге проекта. Конечно, студия Android может иметь GUI-способ справиться с этим, но я не знаю, как использовать другой редактор. Я также не могу утверждать, что решение является общим, но оно "работает для меня" (tm).
Ответ 26
Я столкнулся с той же проблемой в Ubuntu (добавлены как local.properties
, так и ANDROID_HOME
), но сборка сбоев сохраняется. Поэтому обходным путем является
добавить следующие строки
export ANDROID_HOME=/home/<user>/Android/Sdk
export PATH=$PATH:/home/<user>/Android/Sdk/tools
непосредственно на studio.sh
script (внутри /usr/local/android-studio/bin
)
Возможно, это будет полезно.
Ответ 27
я столкнулся с той же ошибкой, но в моем случае я клонировал проект, клонированный проект был построен с Android API 22, который я не установил в то время (у меня был установлен API 24 и 25)........so мне пришлось загрузить инструменты sdk для API 22
Ответ 28
Для Windows:
- Добавить ANDROID_HOME в переменные среды:
ANDROID_HOME = C:/Пользователи/YOUR_USERNAME/AppData/Local/Android/sdk
- Добавить% ANDROID_HOME%\платформенные инструменты в PATH.