2013-05-17 3 views
42

я пытался следовать этот учебник:Android Maven не удалось найти инструмент «AAPT»

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

, но после настройки рабочей среды, а также создать проект, в «работает как \ Maven установить» step i получил следующее:

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 

Я пробовал много раз, но не повезло. У меня Eclipse Juno на Windows7 64 бит, установлен APK Tool и Maven 3.0.5.

Кажется, хорошо известная проблема для сотрудников Maven:

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 

Кто-нибудь знает, как тренировать эту ловушку?

спасибо!

ответ

95

Я также столкнулся с той же проблемой при использовании новейшего ADT из Google и попытке скомпилировать платформу Android-загрузчика.

Последний сборник r17 можно разделить на aapt в папку с инструментами. Следовательно, 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 

Имейте в виду, что это исправлено в последней версии (> 3.5.3) от Android Maven Plugin, как указывают другие ответы.

+3

О, я вижу, ясно. Я думал, что безопасно добавлять «% ANDROID_HOME% \ build-tools \ android-4.2.2» в путь к среде ... в любом случае я прошу прощения, но есть ли способ добавить эти команды в Windows? Могу ли я настроить эту добавочную библиотеку lib, aapt и helpl для переменной окружения Path? –

+0

Я также видел, что есть исправление для новой структуры SDK: https://github.com/jayway/maven-android-plugin/pull/205 Я не понимал, где я должен положить это новый класс ... –

+0

У меня был подозреваемый, что пользователи Windows, такие как я, даже с mklink, не могут добавить мягкую ссылку на ANDROID_HOME, и поэтому обречены ... –

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 
+0

Это решило проблему для меня (на данный момент). Теперь нам нужно подождать, пока плагин android maven будет поддерживать новую структуру. – JesperB

21

Обновление:

Эта проблема была решена, так как Android Maven Plugin v3.6.0. Пока вам нужны эти символические ссылки, если вы используете IntelliJ v12.x. IntelliJ v13 EAP + должен работать из коробки.

Оригинальный ответ:

Это было исправлено и будет выпущен с Android Maven Plugin v3.5.4.См запрос GitHub нагрузочный:

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

+0

изменил версию на 3.6.0, и она работает. Благодарю. – tmin

+0

версия 3.5.3 не работает. Я столкнулся с той же проблемой, что и с 3.5.3. Я еще не пробовал 3.5.4 или 3.6.0. –

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'

Надеется, что это помогает

0

У меня тоже был подобные проблемы.

решаемые следующие шаги:

1) Обновление Maven до 3.1.1 2) Использование Android-Maven-плагин 3.6.1 пр больше [Я использовал 3.8.0] 3) Использование Maven-dependency- плагин 2,8

Если вы хотите построить против последнего SDK Android [Ex: 4,3], выполните следующие дополнительные шаги - 4) Установите локальную копию android.jar с помощью команды МВН установки: installFile .. 5) установить 18

Надеюсь, что это поможет.