2017-10-28 2 views
0

I Android Studio 3.0 vor kurzem aufgerüstet, und während der Ausführung des Programms ich die folgende Fehlermeldung erhalten:Fehler Bytecode Umwandlung Dex: Mehrere dex Dateien, Android Studio 3.0

Error:Error converting bytecode to dex: 
Cause: com.android.dex.DexException: Multiple dex files define Lcom/vuforia/TransformModel; 
Error:com.android.dex.DexException: Multiple dex files define Lcom/vuforia/TransformModel; 
Error: at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661) 
Error: at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616) 
Error: at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598) 
Error: at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 
Error: at com.android.dx.merge.DexMerger.merge(DexMerger.java:198) 
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61) 
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36) 
Error: at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424) 
Error: at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) 
Error: at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) 
Error: at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) 
Error: at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) 
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'. 
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/vuforia/TransformModel; 

Neben meiner Haupt app Modul I habe zwei andere Module in meinem Projekt. Ich habe bereits versucht

Kann mir jemand helfen?

app Modul:

apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 25 
    buildToolsVersion '26.0.2' 
    defaultConfig { 
     applicationId "com.example.shais.gpsdetector" 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     resValue "string", "google_maps_key", (project.findProperty("GOOGLE_MAPS_API_KEY") ?: "") 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    dexOptions { 
     javaMaxHeapSize "4g" 
     preDexLibraries = false 
    } 
} 

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.google.android.gms:play-services-location:10.2.4' 
    compile 'com.google.android.gms:play-services-places:10.2.4' 
    compile 'com.google.android.gms:play-services-maps:10.2.4' 
    compile 'com.google.maps.android:android-maps-utils:0.5+' 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support:cardview-v7:25.3.1' 
    compile 'com.android.support:recyclerview-v7:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    testCompile 'junit:junit:4.12' 
    implementation 'com.cocoahero.android:geojson:1.0.1' 
    compile 'com.android.volley:volley:1.0.0' 
    compile 'com.google.code.gson:gson:2.8.1' 
    compile 'com.android.support:design:25.3.1' 
    implementation project(':vuforia') 
    implementation project(':rajawali') 
} 

Vuforia Modul:

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 25 
    buildToolsVersion '26.0.2' 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     multiDexEnabled true 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    dexOptions { 
     preDexLibraries = false 
    } 
} 

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' 
    }) 
    testCompile 'junit:junit:4.12' 
    compile files('libs/Vuforia.jar') 
} 

rajawali Modul:

apply plugin: 'com.android.library' 
apply plugin: 'jacoco' 
apply plugin: 'signing' 

android { 
    compileSdkVersion 25 
    buildToolsVersion '26.0.2' 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 

    buildTypes { 
     debug { 
      testCoverageEnabled true 
      minifyEnabled false 
     } 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    lintOptions { 
     abortOnError false 
    } 
} 

dependencies { 
    androidTestCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'org.jetbrains:annotations-java5:15.0' 
} 
+1

zeigen Sie Ihre 'build.gradle'. Das gleiche Modul verursacht ein Problem! –

+0

Dies kann helfen: https://stackoverflow.com/questions/46949761/unable-to-merge-dex-android-studio-3-0 –

+0

@IntelliJAmiya Fertig. Kannst du dir das bitte ansehen? –

Antwort

0

Endlich konnte ich das Problem lösen. Der Fehler trat wegen der zwei Pfade von Vuforia Glas in Vuforia Gradle auf. Die folgenden zwei Zeilen in Vuforia Gradle zeigen auf das gleiche Bibliotheksglas.

compile fileTree(include: ['*.jar'], dir: 'libs') 
compile files('libs/Vuforia.jar') 

Ich habe einfach die zweite Zusammenstellung von jar und es ist mein Fehler entfernt.

0

Versuchen Sie zunächst, den Ordner .gradle in Ihrem Projekt zu entfernen. Dann müssen Sie für die Abhängigkeiten von der Abhängigkeitsstruktur mit dem folgenden Befehl zu überprüfen, in Linux:

./gradlew app:dependencies 

oder wenn Sie Windows verwenden versuchen Sie dies:

gradlew.bat app:dependencies 

Wenn Sie gefunden Duplikate Abhängigkeiten in der Liste, können Sie es mit etwas ausschließen:

compile('com.library.name:version') { 
    exclude group: 'com.example', module: 'library' 
} 
Verwandte Themen