Gradle, Android и расположение Android HOME SDK
edit: (aug-2016)
этот вопрос с ноября 2013 года (в то время как Android Studio все еще была в режиме предварительного просмотра разработчика),
В настоящее время (как v2.2, август-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, поэтому вопрос все еще открыт.
кто-нибудь знает, почему ANDROID_HOME не работает и что делать, чтобы заставить его работать?
28 ответов:
Я решил проблему. Это работает для меня:
на
/my_current_project/
Я создал файл с названием местные.свойства и поставить внутри
sdk.dir= / my_current_path_to / sdk
в консоли мне нужно сделать
set 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/
плагин Gradle в Android все еще находится в бета-версии, и это может быть просто ошибка. Для меня установка ANDROID_HOME работает, но мы можем быть на разных версиях (пожалуйста, попробуйте еще раз с самой последней версией и дайте мне знать, если это работает или нет).
также стоит установить переменную окружения ANDROID_SDK, а также ANDROID_HOME.
Я видел проблемы с этим на некоторых машинах, поэтому мы создаем локальные.свойства в этих случаях - я также заметил, что последние версия Android Studio создаст этот файл для вас и заполнит sdk.собственность реж.
обратите внимание, что вы не должны проверять local.свойства в систему управления версиями мы добавили его в наш gitignore, чтобы он не мешал переносу кода через системы, которые вы по праву определили как потенциальную проблему.
по какой-то причине скрипт gradle не получает значение ANDROID_HOME из среды. Попробуйте указать его в командной строке явно
$ ANDROID_HOME=<sdk location> ./gradlew
Я столкнулась с той же проблемой, хотя у меня был местный.файл свойств в моем основном модуле и переменная среды ANDROID_HOME, установленная на системном уровне.
что исправило эту проблему, когда я скопировал локальный.файл свойств, который был в моем основном модуле проекта в корень всего проекта (т. е. родительский каталог для вашего основного модуля)
попробуйте скопировать местные.файл свойств внутри модулей и корневой каталог. Должен работать.
Я столкнулся с той же проблемой при открытии клонированного репозитория 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=E:\android\adt-bundle-windows-x86_64-20131030\sdk Тогда он работает, как и ожидалось.
когда в Linux, вам нужно установить sdk.dir.
скрипт использует две различные переменные.
У меня та же проблема, кажется, пример кода не может найти среду android, вместо того, чтобы попытаться исправить, что я просто удалить пример кода из настроек.gradle, а затем установка идет нормально.
после этого просто импортируйте проект в eclipse и все :)
в Linux, попробуйте запустить studio.sh из терминала и установите ANDROID_HOME в этом терминале. Это сработало для меня.
просто удалить sdk.реж внутри локальной.предоперационный файл и установите ANDROID_HOME переменные среды . Это сработало для меня.
экспорт ANDROID_HOME=/xxx/ xxx / в оболочке, а затем использовать его системой.ОКР.ANDROID_HOME в файле gradle.
PS: Не забудьте ключевые слова "экспорт", чтобы сделать ANDROID_HOME глобальным.
локальный.файл свойств может отсутствовать. Если это так, добавьте файл с именем 'local.свойства ' внутри / локально.свойства и укажите расположение sdk следующим образом.
sdk.маршрутизатор dir=С:\Пользователи\\папка AppData\местные\Андроид\СДК
Я только что решил точно такую же проблему, добавив ANDROID_HOME в качестве общесистемной переменной. В Ubuntu он должен быть в / etc / profile или в файле сценария оболочки в / etc / профиль.d/
затем выйдите из системы и войдите снова, теперь Gradle должен распознать переменную ANDROID_HOME.
Я столкнулся с подобной проблемой. Так или иначе, у меня не было папки сборки в моем проекте. Копируя эту папку из другого проекта в мой проект, с которым у меня была проблема, это исправило эту проблему.
решения:
1 добавить " sdk.dir=path_of_sdk"
2 Выполните gradlew с переменной evn следующим образом:
$ANDROID_HOME=path_of_sdk ./ gradlw
Вы сказали, что версия локальная.свойства создает проблемы для вас. Я взломал скрипт, который использует инструмент командной строки android для обновления локального.файл свойств между машинами, которые участвуют в производстве. Элемент проект обновления 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 может иметь графический интерфейс для решения этой проблемы, но я не знаю, как я использую другой редактор. Я также не могу утверждать, что решение является общим, но оно "работает для меня" (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 (или установить по умолчанию), и она автоматически применяется к любому проекту, который вы открываете.
Это означает, что любой возможный обходной путь или исправление не имеет значения, поскольку проблема больше не воспроизводится.