Плагин android maven не получает переменную envid_HOME env в Eclipse

Я работаю над проектом Android-приложения, и это проект Maven. когда я пытаюсь запустить "maven install", это то, что я получаю:

"Не удалось выполнить цель com.jayway.maven.plugins.android.generation2: android-maven-plugin: 3.1.1: генерировать-источники (источники по умолчанию-source) для проекта android-client: нет Android SDK path. Вы можете настроить его в разделе конфигурации плагина в файле pom, используя... или... или в командной строке, используя -Dandroid.sdk.path =... или установив переменную окружения ANDROID_HOME → [ Справка 1]"

если я жестко задаю свой путь android_home в pom.xml, он отлично работает, но мы используем git, и у каждого могут быть разные пути для android_home.why не поддерживает android-maven-plugin получить переменную env в eclipse?

android_home env переменная находится в моем PATH. Я написал ${env.ANDROID_HOME} в моем pom.xml, но он все еще не работал.

странно, если я использую терминал (mvn install) для запуска в качестве установки maven, он работает!

на самом деле это довольно необязательная проблема для меня, но все же я хочу знать, почему этот плагин не работает в Eclipse.

Ответ 1

Вам нужно создать системную переменную для ANDROID_HOME, а не установить ее в PATH.

Ответ 2

Убедитесь, что ваша установка Android SDK содержит библиотеки для той же версии API, которую вы настроили на вашем pom.xml.

Например, если ваша конфигурация XML выглядит следующим образом:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    ...
    <configuration>
        <sdk>
            <path>${env.ANDROID_HOME}</path>
            <platform>8</platform>
        </sdk>
        ...
    </configuration>
</plugin>

то вы должны проверить с помощью Android SDK Manager (или напрямую проверить свою файловую систему: $ANDROID_HOME/platform), на которой установлен SDK API 8. Конечно, вы также можете изменить свой pom.xml в соответствии с установленной библиотекой.

Ответ 3

Если вы используете Linux, экспорт ANDROID_HOME в .bashrc может не сработать.

export ANDROID_HOME=/home/toro/etc/android-sdk-linux

Для меня это работает только тогда, когда я экспортирую ANDROID_HOME в файл /etc/environment следующим образом:

ANDROID_HOME=/home/toro/etc/android-sdk-linux

Вам нужно перезагрузить компьютер, чтобы он работал.

Вам просто нужно выйти из системы и снова войти в систему для переменной окружения, которая будет применяться в рамках всей системы. При желании вы можете просто его локально протестировать, прежде чем это сделать: $source /etc/environment

Ответ 4

Установка переменной ANDROID_HOME в вашем .bashrc или что-то еще будет работать, но не забудьте экспортировать эту переменную, чтобы она была доступна для подпроцессов. Установка ANDROID_HOME с другими предложенными здесь методами приведет к некоторым начальным ошибкам, но без экспорта ANDROID_HOME, который вы экспортировали, вероятно, произойдет некоторая ошибка.

Ответ 5

в командной строке, запустите:

mvn clean install -- Dandroid.sdk.path="/Applications/Android Studio.app/sdk/"

Ни один из других методов не работал. (настройка ANDROID_HOME ничего не делает)

Ответ 6

Другой способ - установить переменную среды в конфигурацию запуска для pom.xml.

Перейдите в меню "Выполнить настройки", выберите "Запуск конфигурации", используемой для проекта pom.xml, и выберите вкладку "Среда" и выберите "Создать", затем вставьте:

  • ANDROID_HOME в поле Имя
  • путь к вашему sdk в поле значения

Он работает, и таким образом переменная устанавливается только тогда, когда вы запускаете конфигурацию maven для выбранного проекта, и вы также можете установить другой путь для разных проектов, и вам не нужно менять свой .bashrc. Он работает и в окнах.

Ответ 7

Из документации

Вы можете настроить его в разделе конфигурации android-maven-plugin в файле pom.xml с помощью <sdk><path>...</path></sdk> или <properties><android.sdk.path>...</android.sdk.path></properties> или в командной строке с помощью -Dandroid.sdk.path=... или путем установки переменной окружения ANDROID_HOME.

Решение 1

Я определил системную переменную Android SDK под названием ANDROID_SDK (вместо ANDROID_HOME) и указал ее в моем pom.xml следующим образом:

  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <packaging>apk</packaging>
  <name>...</name>
  <description>...</description>

  <properties>
    <android.sdk.path>${env.ANDROID_SDK}</android.sdk.path>
    ...
  </properties>

Решение 2

В качестве альтернативы вы также можете настроить его в разделе android-maven-plugin:

<plugin>
<extensions>true</extensions>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android-maven-plugin.version}</version>
<configuration>
  <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
  <assetsDirectory>${project.basedir}/assets</assetsDirectory>
  <resourceDirectory>${project.basedir}/res</resourceDirectory>
  <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
  <sdk>
    <android.sdk.path>${env.ANDROID_SDK}</android.sdk.path>
    <platform>16</platform>
  </sdk>
  <undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
</plugin>

Решение 3

В качестве третьего варианта вы можете установить SDK из командной строки, передав аргумент Maven:

mvn clean install -Dandroid.sdk.path="C:\\Program Files (x86)\\Android\\android-sdk"

Ответ 8

Вам нужно установить путь определения местоположения SDK для разработчиков Android в Eclipse: нажмите "Окно" → "Настройки" и выберите "Android". Местоположение SDK можно установить в настройках Android.

Ответ 9

Создайте файл с именем local.properties в корневом каталоге вашего проекта.

С содержимым;

sdk.dir=c:\\path\\to\\android-sdk