2017-05-31 2 views
3

Ich habe diesen Fehler, wenn ich versuchte, mein Android-Programm auszuführen.Android: Fehler: Ausführung fehlgeschlagen für Task app: transformClassesWithPreJackPackagedLibrariesForDebug

Error:Execution failed for task ':app:transformClassesWithPreJackPackagedLibrariesForDebug'. java.lang.AssertionError: java.util.zip.ZipException: duplicate entry: jayce/org/hamcrest/BaseDescription.jayce

hier ist mein build.gradle

android { 
compileSdkVersion 25 
buildToolsVersion "25.0.3" 
defaultConfig { 
    applicationId "com.surgical.decision" 
    minSdkVersion 15 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    jackOptions { 
     enabled true 
    } 
} 
compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
}dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile 'com.android.support:appcompat-v7:25.3.1' 
compile 'com.android.support.constraint:constraint-layout:1.0.2' 
compile files('libs/simple-xml-2.7.1.jar') 
compile files('libs/log4j-1.2.17.jar') 
compile files('libs/pddl4j-3.5.0.jar') 
} 

Ich habe jackOptions zu aktivieren, da es eine Menge von Funktion, die ich in Java geschrieben 8.

Antwort

0

ich das gleiche Problem hatte. Ich glaube, dass com.android.support.test.espresso:espresso-core:2.2.2 mit Hamcrest kompiliert wird und ich denke, dass com.android.support:appcompat-v7:25.3.1 auch mit Hamcrest kompiliert wird. Ich glaube, die Fehlermeldung besagt, dass das Hamcrest-Paket in mindestens zwei der kompilierten JAR enthalten ist und das doppelte Problem nicht beheben kann (obwohl sie die gleiche Version sind). Es kann wahrscheinlich das Duplikat aufgrund einiger Jack Technicity nicht auflösen. Um das Problem zu bekommen, müssen Sie es nur ausschließen aus dem einen oder anderen:

d.h

`androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
    exclude group: 'org.hamcrest', module: 'hamcrest-core' 

}) 

oder wenn Sie nicht wirklich Espresso-Kern verwendet, löschen Sie einfach die androidTestCompile Linie zusammen.

In meiner Situation, hatte ich auch hinzufügen:

exclude group: 'junit', module: 'junit' 

, weil ich ein etwas anderen Fehler aufgrund der Einbeziehung von zwei verschiedenen Versionen junit Konflikt zu bekommen.

Die beste Technik zum Debuggen dieser Art von Fehlern ist die Verwendung von Gradle über eine Befehlszeile.

  1. offen Eingabeaufforderung
  2. Navigieren Verzeichnis zu projizieren (es enthält gradlew.bat)
  3. gradlew app:androidDependencies

Verwandte Themen