我正在尝试构建一个 Android 项目,并在启用 Multidex 时收到此错误:
Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':android-simple-host:transformDexArchiveWithDexMergerForDebug'.
这是构建文件:
plugins {
id("com.android.application")
kotlin("android")
kotlin("android.extensions")
}
android {
compileSdkVersion(28)
defaultConfig {
applicationId = "org.tenkiv.kuantify.simple_host"
minSdkVersion(26)
targetSdkVersion(28)
versionCode = 1
versionName = "1.0"
multiDexEnabled = true
testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
sourceSets {
getByName("main").java.srcDirs("src/main/kotlin")
getByName("test").java.srcDirs("src/test/kotlin")
}
packagingOptions {
pickFirst("META-INF/**")
pickFirst("tec/units/indriya/format/messages.properties")
}
}
dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
implementation(project(":android-local"))
implementation(group = "io.ktor", name = "ktor-server-netty", version = Vof.ktor)
testImplementation(group = "junit", name = "junit", version = Vof.junit)
}
我做了一个构建扫描,你可以在这里查看(因为项目很大)。
我很困惑为什么在 multiDex 已经启用时会发生这种情况。我最好的猜测是,由于 gradle 依赖链存在某种库冲突,但据我所知,gradle 在默认情况下构建时会删除重复的依赖项,不是吗?
任何帮助,将不胜感激!
编辑:在 gradle.properties 中禁用 Android D8 使构建能够编译,但这不是一个长期的解决方案。但是,稍微缩小了问题范围!(但仍然很混乱)