【问题标题】:Can't get android-maven-plugin to recognize SDK path无法让 android-maven-plugin 识别 SDK 路径
【发布时间】:2014-01-27 06:02:41
【问题描述】:

在尝试使用 android-maven-plugin 构建 Android 应用程序时,我已经尝试了所有宣传的方法来指定我的 Android SDK 的路径,但没有任何效果。无论我做什么,当我跑步时

mvn clean install

我明白了

... Could not find tool 'aapt'. Please provide a proper Android SDK directory path as configuration parameter <sdk><path>...</path></sdk> in the plugin <configuration/>. As an alternative, you may add the parameter to commandline: -Dandroid.sdk.path=... or set environment variable ANDROID_HOME.

我将环境变量 ANDROID_HOME 设置为指向 SDK 的根目录,并将其导出。那么

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

不起作用。 (并且我在 SDK 中安装了 API 19)

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    ...
    <configuration>
        <sdk>
            <path>/absolute/path/to/sdk</path>
            <platform>19</platform>
        </sdk>
        ...
    </configuration>
</plugin>

没有用

 <properties>
         <android.sdk.path>/absolute/path/to/sdk</android.sdk.path>
 </properties>

不起作用。和

mvn clean install -Dandroid.sdk.path=/absolute/path/to/sdk

不起作用。

我还尝试将 SDK 中的 tools、platform-tools 和 build-tools/19.1.1 目录附加到 $PATH,但这也不起作用。 aapt 工具在我的路径上可用,但 maven 插件拒绝看到它。我搜索了网络,我看到的唯一建议就是做我做过的事情。

我错过了什么?我在 OSX 系统上执行此操作。

【问题讨论】:

  • 你的ANDROID_HOME 是什么样的?什么 android-maven-plugin 版本?
  • 我认为插件版本是问题所在。我使用的是 3.1.1,来自我从网上抓取的一个示例。我尝试了最新的 3.8.2,我必须从 maven2 升级到 maven3。现在会这样做并报告,但这可能是问题所在。
  • 是的,可以肯定的是,旧的 android-maven-plugins 与新的 android SDK 不兼容。
  • 其实我有maven 3.0.5,需要升级到3.1.1
  • 先决条件:已安装 Maven 3.1.1+ :)

标签: android maven sdk apk android-maven-plugin


【解决方案1】:

旧版本的 Android Maven 插件可能无法与最新的 SDK 一起使用。例如,在 3.6.0 版本中添加了对 SDK 22 的支持。检查changelog

3.6.0

插件已更新为与 SDK 22.0 版一起使用。 21.1 在 CI 服务器上工作。它可能适用于旧版本,也可能不适用。

你不需要在 pom.xml 中配置ANDROID_HOME,我的工作配置是这样的:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>3.8.2</version>

    <configuration>
        <sdk>
            <platform>19</platform>
        </sdk>
    </configuration>
</plugin>

正确配置ANDROID_HOME,对我来说这指向

.../adt-bundle-linux-x86_64-20131030/sdk/

在调用 maven 之前,请确保已正确配置。例如只需运行echo $ANDROID_HOME

【讨论】:

  • 谢谢。我相信这正是我正在做的。在 pom 中配置 ANDROID_HOME 只是我在做我认为正确的瘦身不起作用时尝试的几件事之一。我有 ANDROID_HOME 指向 android sdk 的 rood 目录。我在调用 maven 之前用 echo 验证它。
  • @MidnightJava android-maven-plugin 的版本是多少?使用 -X 执行 maven 构建并发布完整错误。
  • 根据 OP 中给出的答案:android-maven-plugin 和 maven 3.1.1 版本 3.8.2 是正确的咒语。
猜你喜欢
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
  • 2014-09-02
  • 2014-04-02
  • 1970-01-01
  • 2015-05-28
  • 2018-05-25
  • 2016-09-11
相关资源
最近更新 更多