com.android.builder.dexing.DexArchiveMergerException: 在合并dex存档时发生错误。
com.android.builder.dexing.DexArchiveMergerException: 在合并dex存档时发生错误。
我无法编译我的项目,因为我将其中一个活动转换为 Kotlin 使用 Android Studio 的“将 Java 文件转换为 Kotlin 文件”功能,并修复了未正确转换的代码的所有错误。
Java 编译器日志:
Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: com.android.tools.r8.CompilationFailedException: Compilation failed to complete com.android.tools.r8.utils.AbortException: Error: null, Cannot fit requested classes in a single dex file (# methods: 110666 > 65536 ; # fields: 67264 > 65536)
build.gradle (app)
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'io.fabric' android { compileSdkVersion 28 buildToolsVersion "28.0.3" defaultConfig { versionName "2.2.4" versionCode 13 minSdkVersion 16 targetSdkVersion 27 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true } buildTypes { debug { applicationIdSuffix ".debug" versionNameSuffix ".d.5" } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } flavorDimensions "server" productFlavors { prod { applicationId "com.test.test" dimension "server" buildConfigField "String", "SERVER_HOST", "\"http://www.test.com\"" } dev { applicationId "dev.test.test" versionNameSuffix ".dev" dimension "server" buildConfigField "String", "SERVER_HOST", "\"http://localhost/test\"" } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0-alpha4', { exclude group: 'com.android.support', module: 'support-annotations' }) implementation('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') { transitive = true } implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.schibstedspain.android:leku:6.0.0' implementation 'com.github.sparklit:adbutler-android-sdk:1.0' implementation 'com.j256.ormlite:ormlite-core:5.0' implementation 'com.j256.ormlite:ormlite-android:5.0' implementation 'com.squareup.okhttp:okhttp:2.4.0' implementation 'androidx.appcompat:appcompat:1.0.0-beta01' implementation 'androidx.cardview:cardview:1.0.0-beta01' implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01' implementation 'com.google.android.material:material:1.0.0-beta01' implementation 'androidx.vectordrawable:vectordrawable:1.0.0-beta01' implementation 'androidx.constraintlayout:constraintlayout:1.1.2' implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01' implementation 'com.google.android.gms:play-services-location:16.0.0' implementation 'com.google.firebase:firebase-core:16.0.7' implementation 'com.facebook.fresco:fresco:1.9.0' implementation 'com.jakewharton.timber:timber:4.7.0' implementation 'com.google.android.gms:play-services-maps:16.1.0' testImplementation 'junit:junit:4.12' def nav_version = "1.0.0-alpha09" implementation "android.arch.navigation:navigation-fragment:$nav_version" // use -ktx for Kotlin implementation "android.arch.navigation:navigation-ui:$nav_version" // use -ktx for Kotlin implementation 'pub.devrel:easypermissions:1.1.1' implementation 'devlight.io:navigationtabbar:1.2.5' } configurations.all { exclude group: 'com.google.guava', module: 'listenablefuture' } apply plugin: 'com.google.gms.google-services' repositories { mavenCentral() }
build.gradle (project)
buildscript { ext.kotlin_version = '1.3.11' repositories { google() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:3.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.2.0' classpath 'io.fabric.tools:gradle:1.27.0' } } allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } maven { url "https://maven.google.com" } } } task clean(type: Delete) { delete rootProject.buildDir }