Android的Maven插件没有得到ANDROID_HOME环境变量在Eclipse(androi

2019-07-30 08:37发布

我工作的一个Android应用程序项目,它是一个Maven项目。 当我尝试运行的“行家安装”这是我得到:

“无法执行目标com.jayway.maven.plugins.android.generation2:Android的Maven的插件:3.1.1:产生来源项目的Android客户端上(默认生成来源):没有Android SDK中的路径可寻你可能配置它在使用POM文件插件配置部...或...或命令行使用-Dandroid.sdk.path = ...或通过设置环境变量ANDROID_HOME - > [帮助1] “

如果我硬编码我android_home路径到pom.xml的,它工作正常,但我们使用git,每个人都可能有android_home.why没有Android的Maven的插件获取环境变量在Eclipse中不同的路径?

android_home环境变量是在我的道路。 我在写的pom.xml $ {} env.ANDROID_HOME,但它仍然没有奏效。

奇怪的是,如果我使用终端(MVN安装)作为Maven的安装运行,它的作品!

其实这是对我来说相当可选问题,但我仍想知道为什么这个插件并不在Eclipse工作。

Answer 1:

您需要创建ANDROID_HOME一个系统变量,而不是将其设置在路径中。



Answer 2:

确保你的Android SDK安装包含了你对你的pom.xml配置相同的API版本的库。

例如,如果你的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管理器验证(或在你的文件系统直接检查:$ ANDROID_HOME /平台),你有SDK API 8安装。 当然,你也可以改变你的pom.xml所安装的库相匹配。



Answer 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



Answer 4:

在您的.bashrc或者任何设置的ANDROID_HOME变量的工作,但要记得该变量导出 ,以便它可以给子进程。 在这里建议的其他方法设置ANDROID_HOME将让你通过一些初步的错误,但没有ANDROID_HOME远销您的构建将在某个时候可能会失败。



Answer 5:

在命令行上,运行:

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

没有其他方法果然奏效。 (设置ANDROID_HOME什么都不做)



Answer 6:

另一种方法是将环境变量设置成pom.xml的运行配置。

去跑配置菜单中,选择用于项目的pom.xml的运行配置,并选择环境选项卡,选择“新建”,然后插入:

  • ANDROID_HOME到名称字段
  • 路径到SDK为价值领域

它的工作原理,并以这种方式当您启动选定工程中的Maven配置变量只能设置,你还可以设置不同的路径为不同的项目,你不需要改变你的.bashrc。 它还工作在Windows中。



Answer 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

作为第三选项,您可以设置从传递一个参数的Maven命令行SDK:

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



Answer 8:

您需要设置Android的开发工具SDK位置的路径在Eclipse:点击窗口 - >首选项,并选择Android系统。 该SDK的位置可以在Android的喜好来设置。



Answer 9:

创建一个名为local.properties在项目的根目录下的文件。

随着内容;

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


文章来源: android maven plugin does not get ANDROID_HOME env variable in Eclipse