1

我正在尝试构建一个 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 使构建能够编译,但这不是一个长期的解决方案。但是,稍微缩小了问题范围!(但仍然很混乱)

4

0 回答 0