Android Maven无法找到工具'aapt'

Bla*_*ack 42 eclipse android 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
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多次,但没有运气.我在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
Run Code Online (Sandbox Code Playgroud)

我的环境系统变量:

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
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

小智 95

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

最新的r17构建分离aapt到build-tools文件夹.因此它是maven-android-plugin无法支持它.

这里讨论的问题.

尝试和工作:

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
Run Code Online (Sandbox Code Playgroud)

某些安装可能使用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
Run Code Online (Sandbox Code Playgroud)

请记住,这已在Android Maven插件的最新版本(> 3.5.3)中修复,正如其他答案所指出的那样.

  • 哦,我明白了......很清楚.我以为我可以安全地将"%ANDROID_HOME%\ build-tools\android-4.2.2"语句添加到环境路径中...无论如何我请你原谅但是,有没有办法在Windows中添加这些命令?我可以锻炼这个附加的lib,aapt和aidl到环境Path变量吗? (3认同)
  • 这是windows版本:mklink aapt.exe ..\build-tools\android-4.2.2\aapt.exe mklink/D lib ..\build-tools\android-4.2.2\lib mklink aidl.exe .. \集结TOOLS\Android的4.2.2\aidl.exe (3认同)
  • 请记住,这已在Android Maven插件的最新版本(> 3.5.3)中修复,正如其他答案所指出的那样. (3认同)

Jam*_*ald 21

更新:

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

原始答案:

这已得到修复,将随Android Maven Plugin v3.5.4发布.查看github pull请求:

升级AndroidSdk以使用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>
Run Code Online (Sandbox Code Playgroud)

请提供有关开发人员组的反馈:

3.5.4的新快照可用


az3*_*az3 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
Run Code Online (Sandbox Code Playgroud)