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 143

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/

в моем случае settings.gradle пропал без вести.

сохраните файл и поместите его в папку верхнего уровня в проекте, даже можно скопировать из другого проекта.

ссылка на скриншот:

enter image description here

надеюсь, что это сэкономит ваше время.

это работает для меня:

$ export ANDROID_HOME=/path_to_sdk/
$ ./gradlew

плагин 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:

  1. откройте терминал и отредактируйте файл:

~/.bash_profile

добавить:

export ANDROID_HOME=~/Library/Android/sdk export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME}/platform-tools

  1. Run:

    source ~/.bash_profile

  2. перезагрузите терминал и 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\местные\Андроид\СДК

Если вы используете Windows plantform, попробуйте запустить Android Studio от имени администратора

Я только что решил точно такую же проблему, добавив ANDROID_HOME в качестве общесистемной переменной. В Ubuntu он должен быть в / etc / profile или в файле сценария оболочки в / etc / профиль.d/

затем выйдите из системы и войдите снова, теперь Gradle должен распознать переменную ANDROID_HOME.

Я столкнулся с подобной проблемой. Так или иначе, у меня не было папки сборки в моем проекте. Копируя эту папку из другого проекта в мой проект, с которым у меня была проблема, это исправило эту проблему.

установка Build-Tools 23.0.1 вместо 23.0.2 исправлена эта проблема для меня.

решения:

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:

  1. добавить ANDROID_HOME к переменным окружения: ANDROID_HOME = C:/Users/YOUR_USERNAME/AppData/Local/Android/sdk
  2. добавить %ANDROID_HOME%\platform-tools в путь.

этот вопрос с ноября 2013 года (в то время как Android Studio все еще была в режиме предварительного просмотра разработчика),

В настоящее время (как v2.2, Aug-2016) во время установки AS просит выбрать папку SDK (или установить по умолчанию), и она автоматически применяется к любому проекту, который вы открываете.

Это означает, что любой возможный обходной путь или исправление не имеет значения, поскольку проблема больше не воспроизводится.