Android Maven无法找到工具' aapt'

时间:2013-05-17 23:14:44

标签: android eclipse maven

我试图遵循这个教程:

http://www.gdgankara.org/2012/11/01/step-by-step-android-development-with-maven/

但在设置环境并创建项目之后,在“run as \ maven install”步骤中我得到了这个:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building tutorial 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- android-maven-plugin:3.1.1:generate-sources (default-generate-sources) @ tutorial ---
[INFO] ANDROID-904-002: Found aidl files: Count = 0
[INFO] ANDROID-904-002: Found aidl files: Count = 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.889s
[INFO] Finished at: Sat May 18 00:32:12 CEST 2013
[INFO] Final Memory: 8M/111M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.1.1:generate-sources (default-generate-sources) on project tutorial: Execution default-generate-sources of goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.1.1:generate-sources failed: 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. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

我已经尝试了很多次,但没有运气。 我在Windows7 64位上安装了Eclipse Juno,安装了APK工具和Maven 3.0.5。

对于专业人员而言,这似乎是一个众所周知的问题:

https://code.google.com/p/maven-android-plugin/issues/detail?id=104

但它应该从多年来解决......

我的环境用户变量:

M2_HOME=C:\Program Files\Java\apache-maven-3.0.5

ANDROID_HOME=C:\adt-bundle-windows-x86_64-20130514\sdk

我的环境系统变量:

Path=......;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools;%ANDROID_HOME%\platforms;%M2_HOME%\bin;%ANDROID_HOME%\build-tools\android-4.2.2

有人知道如何锻炼这个陷阱吗?

谢谢!

6 个答案:

答案 0 :(得分:95)

从谷歌使用最新的ADT并尝试编译bootstrap android平台时,我也遇到了同样的问题。

最新的r17版本将aapt分隔为build-tools文件夹。因此它是maven-android-plugin无法支持它。

请参阅讨论的问题here

尝试并且正在工作:

cd $ANDROID_HOME/platform-tools
ln -s ../build-tools/android-4.2.2/aapt aapt
ln -s ../build-tools/android-4.2.2/lib lib
ln -s ../build-tools/android-4.2.2/aidl aidl

某些安装可能使用API​​版本进行构建:

cd $ANDROID_HOME/platform-tools
ln -s ../build-tools/17.0.0/aapt aapt
ln -s ../build-tools/17.0.0/lib lib
ln -s ../build-tools/17.0.0/aidl aidl

请注意,这已在Android Maven插件的最新版本(&gt; 3.5.3)中修复,正如其他答案所指出的那样。

答案 1 :(得分:21)

更新

Android Maven Plugin v3.6.0以来,此问题已得到解决。现在,如果您使用IntelliJ v12.x,则只需要这些符号链接。 IntelliJ v13 EAP +应该开箱即用。

原始答案:

此问题已修复,将随Android Maven Plugin v3.5.4发布。请参阅github pull请求:

Upgraded AndroidSdk to use path and platform utilities from sdklib

您可以尝试通过在pom.xml中添加以下内容来验证包含修复程序的快照构建:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>3.5.4-SNAPSHOT</version>
    ...
</plugin>
...
<pluginRepositories>
  <pluginRepository>
    <id>oss.sonatype.org-jayway-snapshots</id>
    <name>Jayway OpenSource SNAPSHOTs on Sonatype.org</name>
    <url>http://oss.sonatype.org/content/repositories/jayway-snapshots/</url>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </pluginRepository>
</pluginRepositories>

请提供有关开发者群体的反馈意见:

New snapshot for 3.5.4 available

答案 2 :(得分:14)

如果您使用的是Windows,则可以使用mklink命令完成符号链接。

D:\>cd "Program Files (x86)\Android\android-sdk"

D:\Program Files (x86)\Android\android-sdk>cd platform-tools

D:\Program Files (x86)\Android\android-sdk\platform-tools>mklink aapt.exe ..\build-tools\17.0.0\aapt.exe
symbolic link created for aapt.exe <<===>> ..\build-tools\17.0.0\aapt.exe

D:\Program Files (x86)\Android\android-sdk\platform-tools>mklink aidl.exe ..\build-tools\17.0.0\aidl.exe
symbolic link created for aidl.exe <<===>> ..\build-tools\17.0.0\aidl.exe

D:\Program Files (x86)\Android\android-sdk\platform-tools>mklink /d lib ..\build-tools\17.0.0\lib
symbolic link created for lib <<===>> ..\build-tools\17.0.0\lib

答案 3 :(得分:0)

我遇到了同样的问题。最后我设法在两小时后解决了这个问题。为了简化并在5分钟内解决问题,我列出了以下步骤

第1步 - 在Eclipse中使用测试版链接将 Android Maven插件更新为0.4.3.2013 http://rgladwell.github.io/m2e-android/updates/master/

第2步

     <plugin>
        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
        <artifactId>android-maven-plugin</artifactId> 
        <version>3.6.1</version>
        <configuration>
            <sdk>
                <platform>17</platform>
            </sdk> 
        </configuration>
    </plugin>

它将解决以下问题

"No Android Platform Version/API Level has been configured"

Could not find tool 'aapt'

希望有所帮助

答案 4 :(得分:0)

我也有类似的问题。

通过以下步骤解决:

1)将maven升级到3.1.1 2)使用android-maven-plugin 3.6.1 pr更大[我使用3.8.0] 3)使用maven-dependency-plugin 2.8

如果您想针对最新的Android SDK [例如:4.3]进行构建,请按照以下附加步骤进行操作 - 4)使用命令mvn install:installFile安装android.jar的本地副本。 5)设置18

希望这有帮助。

答案 5 :(得分:0)

我正在使用macOS 10.14,就我而言:

我从AAPT下载Android打包工具,然后将所有文件复制到
$ANDROID_HOME/platforms/$SDK/tools/


不要用实名SDK更改$ SDK以便实例化android-29