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

  1. Run:

    source ~/.bash_profile

  2. Перезапустите терминал и 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.