/ / Wiele plików dex definiuje Lorg / springframework / http / ContentCodingType $ 1 - reszta, adnotacje-android, wiosna-android

Wiele plików dex definiuje Lorg / springframework / http / ContentCodingType $ 1 - reszta, adnotacje android, spring-android

Testuję framework androidannotations, ale mam jakiś błąd podczas dodawania biblioteki spring-android. Tworzę repozytorium dla mojego projektu testowego open_git_repo !

W tej chwili mam w konsoli gradle


AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":       {},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"}
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex    files define Lorg/springframework/http/ContentCodingType$1;","position{},"original":"com.android.dex.DexException: Multiple dex files define Lorg/springframework/http/ContentCodingType$1;"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)","position":{},"original":"tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)","position":{},"original":"tat        com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)","position":{},"original":"tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)","position":{},"original":"tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.merge(DexMerger.java:188)","position":{},"original":"tat com.android.dx.merge.DexMerger.merge(DexMerger.java:188)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)","position":{},"original":"tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)","position":{},"original":"tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.dexer.Main.run(Main.java:230)","position":{},"original":"tat com.android.dx.command.dexer.Main.run(Main.java:230)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.dexer.Main.main(Main.java:199)","position":{},"original":"tat com.android.dx.command.dexer.Main.main(Main.java:199)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.Main.main(Main.java:103)","position":{},"original":"tat com.android.dx.command.Main.main(Main.java:103)"}
AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"}
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex files define Lorg/springframework/http/ContentCodingType$1;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Lorg/springframework/http/ContentCodingType$1;"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)","position":{},"original":"tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)","position":{},"original":"tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)","position":{},"original":"tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)","position":{},"original":"tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.merge.DexMerger.merge(DexMerger.java:188)","position":{},"original":"tat com.android.dx.merge.DexMerger.merge(DexMerger.java:188)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)","position":{},"original":"tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)","position":{},"original":"tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.dexer.Main.run(Main.java:230)","position":{},"original":"tat com.android.dx.command.dexer.Main.run(Main.java:230)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.dexer.Main.main(Main.java:199)","position":{},"original":"tat com.android.dx.command.dexer.Main.main(Main.java:199)"}
AGPBI: {"kind":"SIMPLE","text":"tat com.android.dx.command.Main.main(Main.java:103)","position":{},"original":"tat com.android.dx.command.Main.main(Main.java:103)"}


FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ":app:dexDebug".
> com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException: Process "command "C:Program FilesJavajdk1.6.0_45binjava.exe"" finished with non-zero exit value 2

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Mój skrypt kompilacji


buildscript {
repositories {
maven {
url "http://repo.spring.io/milestone"
}
jcenter()
}
dependencies {
classpath "com.neenbedankt.gradle.plugins:android-apt:1.4"}
}
apply plugin: "com.android.application"

android {
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.example.mbykov.myapplication"
minSdkVersion 15
targetSdkVersion 15
versionCode 1
versionName "1.0"
}
apply plugin: "com.android.application"
apply plugin: "android-apt"
def AAVersion = "3.3"
dependencies {
apt "org.androidannotations:androidannotations:3.3"
compile "org.androidannotations:androidannotations-api:3.3"
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
}
}
sourceSets {}
packagingOptions {
exclude "META-INF/DEPENDENCIES.txt"
exclude "META-INF/DEPENDENCIES"
exclude "META-INF/dependencies.txt"
exclude "META-INF/LICENSE.txt"
exclude "META-INF/LICENSE"
exclude "META-INF/license.txt"
exclude "META-INF/LGPL2.1"
exclude "META-INF/NOTICE.txt"
exclude "META-INF/NOTICE"
exclude "META-INF/notice.txt"
}
}

dependencies {
compile fileTree(include: ["*.jar"], dir: "libs")
//compile "org.springframework.android:spring-android-rest-template:2.0.0.BUILD-SNAPSHOT"
compile "org.springframework.android:spring-android-rest-   template:1.0.1.RELEASE"
}
repositories {
maven {
url "http://repo.spring.io/snapshot"
}}

Nie rozumiem tego błędu, czy ktoś mógłby wyjaśnić, co się dzieje?

Odpowiedzi:

2 dla odpowiedzi № 1

Dwie rzeczy:

Najpierw zadeklarowane zależności:

//compile "org.springframework.android:spring-android-rest-template:2.0.0.BUILD-SNAPSHOT"
compile "org.springframework.android:spring-android-rest-   template:1.0.1.RELEASE

Wiem, że zakomentowałeś pierwszą zależność, ale upewnij się, że nie masz dwóch na raz. Spowoduje to zduplikowanie klas w twojej ścieżce klas i dex zawiedzie.

Po drugie, masz w swoim libs teczka. Spowoduje to również powielenie, ponieważ odwołujesz się do tej biblioteki jako zależności od repozytorium, a także jako zależności od lokalnego libs teczka. Po prostu usuń plik libs folder, jest to całkowicie niepotrzebne.Zawsze należy korzystać z odpowiedniego zarządzania zależnościami, np. po prostu zadeklaruj je w swoim buildscript i pozwól gradle pobrać je z zależnościami przechodnimi, poprawną wersją i rozwiązywaniem konfliktów zależności itp. Usuń też tę linię:

compile fileTree(include: ["*.jar"], dir: "libs")