Trước hết, có ít nhất 2 bài đăng có cùng vấn đề nhưng các giải pháp này không hoạt động nữa, ít nhất là không cài đặt.java.lang.IllegalArgumentException: đã được thêm: Lorg/hamcrest/BaseDescription; Chuyển đổi sang định dạng Dalvik không thành công với lỗi 1
Tôi đang sử dụng M2E với Eclipse và Android và cố gắng để chạy các ứng dụng như "Ứng dụng Android" bằng cách chọn chạy như-> ứng dụng Android, nhưng tôi luôn luôn nhận được lỗi này:
UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Lorg/hamcrest/BaseDescription;
. . .[2012-09-08 19:50:41 - net.mydomain.project-TRUNK] Conversion to Dalvik format failed with error 1
Đó là vấn đề được mô tả here in Tools R14 section. Trước hết, điều này không thể sửa được vì tôi có vấn đề này trong ADT 20.0.3. Thứ hai, tôi không có những cái gọi là "_src" thư mục. Tôi chưa bao giờ thấy chúng trong một dự án Maven trước đây, vì vậy tôi không biết tôi nên làm gì bây giờ. Tôi thậm chí không có bất kỳ thư viện nào liên kết hai lần. Ít nhất tôi không thấy một số trong dự án của tôi. Bất kỳ ý tưởng làm thế nào để có được điều này làm việc?
Đây là pom.xml của tôi nếu điều này giúp:
<?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/maven- v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.devgems.android</groupId>
<artifactId>kurzparkzonewien</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>apk</packaging>
<name>kurzparkzonewien</name>
<properties>
<platform.version>1.6_r2</platform.version>
<android.sdk.path>/opt/android-sdk-linux</android.sdk.path>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.0.1</version>
</dependency>
<!-- Make sure this is below the android dependencies -->
<dependency>
<groupId>com.pivotallabs</groupId>
<artifactId>robolectric</artifactId>
<version>1.0-RC1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<outputDirectory>target/classes</outputDirectory>
<testOutputDirectory>target/test-classes</testOutputDirectory>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
<assetsDirectory>${project.basedir}/assets</assetsDirectory>
<resourceDirectory>${project.basedir}/res</resourceDirectory>
<nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
<sdk>
<platform>4</platform>
<path>${android.sdk.path}</path>
</sdk>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Tôi đang sử dụng Eclipse Juno, ADT 20.0.3, M2E 1.1.0.
Phát ngay! Trong trường hợp của tôi, tôi đã cố gắng sử dụng ActionBarSherlock 4.2.0 như một dự án thư viện, và điều đó đã mang JUnit 4.10 như một sự phụ thuộc vào dự án của tôi! Thay đổi JUnit từ 4.10 đến 4.8.1 trong ActionBarSherlock Library pom.xml sửa nó. Cảm ơn rất nhiều! –
Nếu bạn muốn tiếp tục sử dụng 4,10 thì bạn có thể loại trừ một cách rõ ràng bình chứa hamcrest như là một phụ thuộc chuyển tiếp của JUnit. Đây là cách để làm điều đó trong Gradle: instrumentTestCompile ('junit: junit: 4.10') { loại trừ nhóm: 'org.hamcrest' } Xem ở đây cho Maven tương đương: http: // maven. apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html – Brendan