Ну, мне потребовалось навсегда, чтобы полностью понять эту ошибку, чтобы обойти ее, а также включить отладку с помощью ярлыка Eclipse.
Так что без каких-либо гарантий здесь есть общее решение, которое до сих пор работает для меня очень хорошо, и я до сих пор не столкнулся с какими-либо проблемами:
У меня есть родительский пом:
<?xml version="1.0" encoding="UTF-8"?>
<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>com.nu.art.software.android</groupId>
<artifactId>android-maven-parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<name>android-maven-parent</name>
<url>http://maven.apache.org</url>
<properties>
<android.sdk>7</android.sdk>
<android.emulator.name>emulator1</android.emulator.name>
<android.version>2.1_r1</android.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${android.version}</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<outputDirectory>./target/android-classes</outputDirectory>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>maven-android-plugin</artifactId>
<version>3.0.0-alpha-2</version>
<configuration>
<sdk>
<platform>${android.sdk}</platform>
</sdk>
<emulator>
<avd>${android.emulator.name}</avd>
</emulator>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>unpack</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<excludeScope>provided</excludeScope>
<skip>true</skip>
<includes>**/*.class</includes>
<outputDirectory>${project.basedir}/bin</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>Make-classes-output</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<inherited>true</inherited>
<configuration>
<tasks>
<echo>Creating '${project.basedir}/target/classes' Directory</echo>
<mkdir
dir="${project.basedir}/target/classes" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Что устраняет всю логику в плагине для запуска и отладки в Eclipse, а также решает проблемы с дубликатами. ( В первый раз у меня была папка res в качестве исходной папки, в которой все запуталось, а позже она была дублирована в зависимостях )
Далее у каждого финального проекта есть свой pom, который позволяет копировать зависимости в выходную папку Eclipse:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>android-maven-parent</artifactId>
<groupId>com.nu.art.software.android</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.nu.art.software.sod</groupId>
<artifactId>s-o-d</artifactId>
<version>1.0.0</version>
<packaging>apk</packaging>
<name>S-O-D</name>
<dependencies>
<dependency>
<groupId>com.nu.art.software</groupId>
<artifactId>rexml</artifactId>
<version>0.0.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.nu.art.software</groupId>
<artifactId>nu-art-module-manager</artifactId>
<version>0.0.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.nu.art.software</groupId>
<artifactId>nu-art-generator</artifactId>
<version>0.0.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.nu.art.software</groupId>
<artifactId>nu-art-reflection</artifactId>
<version>0.0.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>unpack</id>
<configuration>
<skip>false</skip>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
И несколько заключительных слов, после установки окончательного проекта, этот трюк берет все зависимости, извлекает их в выходную папку Eclipse, которая определена как «./bin» (выходная папка плагина ADT по умолчанию, если я не ошибиться).
Позже, Eclipse соберет APK, используя данные, он имеет в своей выходной папке wallah и apk, с помощью которого F11 может запустить отладчик.
Опять же, это работает для меня ... и я надеюсь, что это поможет вам тоже.
Поделитесь своей мыслью ...
Адам.