Gradle, Android и расположение Android HOME SDK
edit: (aug-2016)
этот вопрос с ноября 2013 года (в то время как Android Studio все еще находилась в режиме предварительного просмотра разработчика),
В настоящее время (как 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
edit:
Я уже создал локальный.файл свойств с sdk.dir=<path>
на корне проекта, и он работает. Но это затрудняет перенос кода между системами n build server, поэтому вопрос все еще открыт.
кто-нибудь знает, почему ANDROID_HOME не работает и что делать, чтобы заставить его работать?
28 ответов
Я решил проблему. Это работает для меня:
на
/ my_current_project/
Я создал файл с названием местные.свойства и поставить внутри
sdk.dir=/my_current_path_to / sdk
в консоли мне нужно сделать
установить ANDROID_HOME= / my_current_path_to / sdk
надеюсь, что это помогает.
на OSX, IntelliJ не будет подбирать переменные среды, которые вы установили в своем .bash_profile или .bash_rc и т. д...
попробуйте это, подставляя значение вашего собственного местоположения SDK:
launchctl setenv ANDROID_HOME /usr/local/opt/android-sdk
затем перезапустите IntelliJ, и Боб - ваш дядя.
вот ссылка на проблему, изложенную в более общем виде: https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/
в моем случае settings.gradle
отсутствует.
сохраните файл и поместите его в папку верхнего уровня в проекте, даже можно скопировать из другого проекта.
скриншот ссылка:
надеюсь, это сэкономит ваше время.
плагин Gradle в Android все еще находится в бета-версии, и это может быть просто ошибка. Для меня настройка ANDROID_HOME работает, но мы можем быть в разных версиях (повторите попытку с самой последней версией и дайте мне знать, работает ли она или нет).
также стоит установить переменную среды ANDROID_SDK, а также ANDROID_HOME.
Я видел проблемы с этим на некоторых машинах, поэтому мы создаем локальные.свойства в тех случаях, - я также заметил, что последний версия Android Studio создаст этот файл для вас и заполнит sdk.собственность реж.
обратите внимание, что вы не должны проверять local.свойства в управление версиями мы добавили его в наш gitignore, чтобы он не мешал переносу кода через системы, которые вы по праву определили как потенциальную проблему.
по какой-либо причине скрипт gradle не получает значение ANDROID_HOME из среды. Попробуйте указать его в командной строке явно
$ ANDROID_HOME=<sdk location> ./gradlew
Я столкнулась с той же проблемой, хотя у меня был местный.файл свойств в моем основном модуле и переменная среды ANDROID_HOME установлены на системном уровне.
что исправило эту проблему, когда я скопировал локальный.файл свойств, который был в моем основном модуле проекта до корня всего проекта (i.e родительский каталог для вашего основного модуля)
попробуйте скопировать местные.файл свойств внутри модулей и корневой каталог. Должен работать.
Я столкнулся с той же проблемой при открытии клонированного репозитория git. Местный житель.файл свойств автоматически добавляется в файл .файл gitignore, поскольку он специфичен для среды сборки каждой машины и поэтому не является частью РЕПО.
решение состоит в том, чтобы импортировать проект, а не просто открывать его после того, как вы клонировали его из git, это заставляет Android studio создавать локальный.файл свойств, специфичный для вашей машины:
Файл >> Импорт Проекта >>
как это сделать на 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) Run source ~/.bash_profile
.
4) Run echo $JAVA_HOME; echo $ANDROID_HOME;
5) Если ваш вывод:
/usr/libexec/java_home
/Users/<YOUR USER NAME>/Library/Android/sdk
Итак, Вы хороши.
и перезапустите Android studio!
и, Убедитесь, что у вас есть Java :)
java -version
и gradle:)
gradle --version
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
это сработало для меня (Ubuntu):
добавить ANDROID_HOME=/path/to/android-sdk
до /etc/environment
.
перезагрузка.
в Windows, я установил ANDROID_HOME=е:\\андроид ADT пакет-окна-архитектуру x86_64-20131030\SDK для Тогда он работает как ожидалось.
когда в Linux вам нужно установить sdk.dir.
скрипт использует две различные переменные.
У меня такая же проблема, кажется, пример кода не может найти среду android, вместо этого, чтобы попытаться исправить, что я просто удаляю пример кода из настроек.gradle, а затем установка идет нормально.
после этого просто импортируйте проект в eclipse, и все :)
в Linux попробуйте запустить studio.sh из терминала и установите ANDROID_HOME в этом терминале. Это сработало для меня.
просто удалить sdk.реж.--2--> внутри локальной.файл preoperties и установите ANDROID_HOME переменные среды . У меня получилось.
экспорт ANDROID_HOME=/xxx/ xxx / в оболочке, а затем использовать его системой.env.ANDROID_HOME в файле gradle.
PS: Не забудьте ключевые слова "экспорт", чтобы сделать ANDROID_HOME глобальным.
локальный.файл свойств может отсутствовать. Если это так, добавьте файл с именем " local.свойства " внутри / локально.свойства и укажите расположение sdk следующим образом.
sdk.dir=C:\Users\ \ AppData\Local\Android\Sdk
Я только что решил ту же проблему, добавив ANDROID_HOME в качестве системной переменной. В Ubuntu он должен быть в /etc / profile или в файле сценария оболочки в /и т. д./профиль.d/
затем выйдите из системы и снова войдите в систему, теперь Gradle должен распознать переменную ANDROID_HOME.
Я столкнулся с аналогичной проблемой. Так или иначе, у меня не было папки build в моем проекте. Скопировав эту папку из другого проекта в мой проект, у меня возникла проблема, это исправило эту проблему.
решения:
1 добавить " sdk.dir=path_of_sdk"
2 Выполните gradlew с переменной evn следующим образом:
$ANDROID_HOME=path_of_sdk ./ gradlw
Вы сказали, что управление версиями локально.свойства создают проблемы для вас. Я взломал сценарий, который использует инструмент командной строки android для обновления локального.файл свойств на компьютерах, участвующих в производстве. The проект обновления android, кроме местные.свойства производит много ненужного мусора (по крайней мере для меня) что является причиной всех этих rm команды в конце скрипт.
#!/bin/bash
scname=""
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"
этот скрипт-первое, что мы запускаем на любой новой машине, где мы кодируем. Он должен быть запущен в корневом каталоге проекта. Конечно, android studio может иметь GUI-способ справиться с этим, но я не знаю, как я использую другой редактор. Я также не могу утверждать, что решение является общим, но оно "работает для меня" (tm).
я столкнулся с той же проблемой на Ubuntu(как local.properties
и ANDROID_HOME
был добавлен), но строить не сохраняются. Таким образом, обходной путь
добавить следующие строки
export ANDROID_HOME=/home/<user>/Android/Sdk
export PATH=$PATH:/home/<user>/Android/Sdk/tools
непосредственно studio.sh
скрипт (внутри /usr/local/android-studio/bin
)
может быть, это будет полезно.
Я столкнулся с той же ошибкой, но в моем случае я клонировал проект, клонированный проект был построен с Android API 22, который я не устанавливал в то время(у меня был установлен API 24 и 25)........поэтому мне пришлось загрузить инструменты sdk для API 22
Для Windows:
- добавить ANDROID_HOME в переменные среды: ANDROID_HOME = C:/Users/YOUR_USERNAME/AppData/Local/Android/sdk
- добавить в путь %ANDROID_HOME%\platform-tools.
этот вопрос с ноября 2013 года (в то время как Android Studio все еще находилась в режиме предварительного просмотра разработчика),
В настоящее время (как v2.2, Aug-2016) во время установки AS просит выбрать папку SDK (или установить по умолчанию), и она автоматически применяется к тому, какой проект вы открываете.
Это означает, что любое возможное обходное решение или исправление не имеет значения, поскольку проблема больше не воспроизводима.