Black.Jack
Black.Jack

Reputation: 1957

Android Maven Could not find tool 'aapt'

i was trying to follow this tutorial:

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

but after setting up the environment, and create a project, at the "run as\maven install" step i got this:

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

I've tried lot of times, but with no luck. I have Eclipse Juno on Windows7 64 bit, APK Tool installed and Maven 3.0.5.

It seems a well known problem for maven staff:

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

but it should be solved from ages...

My Environment User variables:

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

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

My Environment System variable:

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

Does anybody know how to workout this trap?

thanks!

Upvotes: 42

Views: 24781

Answers (6)

Reza Dehnavi
Reza Dehnavi

Reputation: 2273

I'm using macOS 10.14 and in my case:

I download Android packaging tool from AAPT and then copied all the files into
$ANDROID_HOME/platforms/$SDK/tools/


DON'T REMIND CHANGE $SDK WITH YOUR REAL NAME SDK FOR INSTANCE android-29

Upvotes: 0

Rams_QA
Rams_QA

Reputation: 121

I too had similar problems.

Solved by following steps :

1) Upgrade maven to 3.1.1 2) Use android-maven-plugin 3.6.1 pr greater [I used 3.8.0] 3) Use maven-dependency-plugin 2.8

If you want to build against latest Android SDK [ex : 4.3], follow following additional steps - 4) Install the local copy of android.jar using command mvn install:installFile .. 5) Set 18

Hope this helps.

Upvotes: 0

vinothp
vinothp

Reputation: 10069

I get stuck with the same problem. Finally i managed to resolve the issue after two hours. To make it simple and resolve the issue in 5 minutes i listed the steps below

Step 1 - In Eclipse update your Android Maven Plugin to 0.4.3.2013 using the beta release link http://rgladwell.github.io/m2e-android/updates/master/

Step 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>

It will solve the following issues

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

Could not find tool 'aapt'

Hope it helps

Upvotes: 0

James Wald
James Wald

Reputation: 13744

Update:

This has been resolved since Android Maven Plugin v3.6.0. For now you will only need these symlinks if you use IntelliJ v12.x. IntelliJ v13 EAP+ should work out of the box.

Original answer:

This has been fixed and will be released with Android Maven Plugin v3.5.4. See the github pull request:

Upgraded AndroidSdk to use path and platform utilities from sdklib

You can try validating the snapshot build which contains the fix by adding the following to your 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>

Please provide feedback on the developer group:

New snapshot for 3.5.4 available

Upvotes: 21

az3
az3

Reputation: 3649

If you are using Windows, the symbolic linking can be done using mklink command.

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

Upvotes: 15

user2284918
user2284918

Reputation: 1044

I also encountered the same problem when using latest ADT from google and trying to compile the bootstrap android platform.

The latest r17 build separate out aapt to build-tools folder. Hence it is maven-android-plugin cannot support it.

See issue discussed here.

Tried and working:

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

Some installations may be structured using the API version:

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

Keep in mind that this is fixed in the latest version (>3.5.3) of the Android Maven Plugin, as other answers point out.

Upvotes: 96

Related Questions