Android et maven: problème avec les dépendances maven en apk

Je suis actuellement en train de travailler sur un projet Android à l'aide de Maven comme l'outil de génération. Cependant, je vais avoir un problème avec y compris les dépendances, pour être plus précis: aucun de la liste des dépendances dans mon fichier pom sont emballés dans de l'apk. Il en résulte ClassDefNotFound des erreurs lorsque j'essaye d'exécuter l'application sur mon émulateur (le sous-jacent ClassNotFound exception est levée dans le Dalvik loader).

Je suis l'aide de Springsource Tool Suite ( 2.5.2.SR1), avec la configuration du plugin:

  • Android Outils De Développement (10.0.1.v201103111512-110841)
  • Maven integration for Android Outils de Développement (0.2.5)
  • Intégration de Maven pour Eclipse (0.12.1.20110112-1712)
  • Maven (2.2.1)

C'est mon pom fichier

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>android-test</groupId>
<artifactId>android-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>apk</packaging>
<name>android-test</name>
<properties> 
<android-platform>10</android-platform>
<android-emulator>Android-2.3.3</android-emulator>
<android-sdk-path>C:\Program Files\Android\android-sdk</android-sdk-path>
<maven-android-plugin-version>2.8.4</maven-android-plugin-version>
<maven-compiler-plugin-version>2.3.2</maven-compiler-plugin-version>
<android-version>2.3.1</android-version>
<spring-android-version>1.0.0.M2</spring-android-version>
<jackson-version>1.7.2</jackson-version>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>maven-android-plugin</artifactId>
<version>${maven-android-plugin-version}</version>
<configuration>
<sdk>
<platform>${android-platform}</platform>
<path>${android-sdk-path}</path>
</sdk>
<emulator>
<avd>${android-emulator}</avd>
</emulator>
<deleteConflictingFiles>false</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin-version}</version>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${android-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.android</groupId>
<artifactId>spring-android-rest-template</artifactId>
<version>${spring-android-version}</version>
</dependency>
<dependency>
<!-- Using Jackson for JSON marshaling -->
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson-version}</version>
</dependency>
</dependencies>
<repositories>
<!-- For testing against latest Spring snapshots -->
<repository>
<id>org.springframework.maven.snapshot</id>
<name>Spring Maven Snapshot Repository</name>
<url>http://maven.springframework.org/snapshot</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- For developing against latest Spring milestones -->
<repository>
<id>org.springframework.maven.milestone</id>
<name>Spring Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
</project>

Et mon android fichier manifeste:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ae.test.android"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

Autant que je peux dire, ce doit être une installation correcte. Le problème est maintenant, quand j'essaie de construire ce projet, j'obtiens:

Ne peut pas ajouter une source dossier de fichiers en Double dans le même chemin à l'intérieur de l'APK

J'ai trouvé cette sur ALORS, et alors que la solution (en changeant le dossier de sortie par défaut de l'éclipse à bin au lieu de target) ont permis de résoudre l'erreur, elle ne résout pas le problème de dépendance. Mon android généré fichiers ne sont pas inclus dans le dossier cible donc la solution est d'aucune utilité pour moi.

Quelqu'un d'autre a eu aucune expérience avec la mise en place d'Android et de Maven et si oui, pourriez-vous s'il vous plaît m'aider?

Merci beaucoup d'avance!

Avez-vous soulever un défaut pour le maven-android-plugin projet? code.google.com/p/maven-android-plugin/issues/entry
Gladwell - pas encore, bon point! Je vais l'ajouter de ce soir.
Gladwell - j'ai réussi à le faire fonctionner, ont besoin de retester pour voir si je peux reproduire le bug (construit à partir de la ligne de commande de travail). Je vais poser un défaut si je peux reproduire le comportement.
Pouvez-vous poster un lien vers la question que vous avez créé ici?

OriginalL'auteur thomaux | 2011-03-27