Java 和 Kotlin 组合构建错误(Duplicate Zip Entry)

标签 java android kotlin build.gradle kotlin-android-extensions

我已将 Kotlin 库添加到现有项目中。之后我收到构建错误。我评论了所有最近添加的库,并检查了主要问题是在添加 kotlin 库之后

Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> java.io.IOException: Can't write [/home/imedrix-server/StudioProjects/kardioscreen-operatorapp/app/build/intermediates/multi-dex/debug/componentClasses.jar] (Can't read [/home/imedrix-server/StudioProjects/kardioscreen-operatorapp/app/build/intermediates/transforms/desugar/debug/76.jar(;;;;;;**.class)] (Duplicate zip entry [76.jar:org/intellij/lang/annotations/Flow.class]))

项目等级

buildscript {
    ext.kotlin_version = '1.2.21'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.google.gms:google-services:3.0.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath ('com.google.firebase:firebase-plugins:1.0.5') {
            exclude group: 'com.google.guava', module: 'guava-jdk5'
        }
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {url "https://maven.google.com"}
    }
}

和应用程序 gradle

apply plugin: 'com.android.application'

apply plugin: 'com.google.firebase.firebase-crash'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId 'com.example.android'
        minSdkVersion 20
        targetSdkVersion 27
        versionCode 17
        versionName "1.0"
        multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            buildConfigField("String", "BASE_URL", "\"url\"")
            buildConfigField("String", "API_KEY", "\"key\"")
        }
    }

    productFlavors {
    }
    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude '.readme'
    }
}



dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':controllers')
    compile files('libs/achartengine-1.2.0.jar')
    compile files('libs/dfuLibrary.jar')
    compile 'com.android.support:appcompat-v7:27.0.2'
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    compile 'com.android.support:design:27.0.2'
    compile 'com.android.support:recyclerview-v7:27.0.2'
    compile 'com.android.support:cardview-v7:27.0.2'
    compile 'com.polidea.rxandroidble:rxandroidble:1.0.2'
    compile 'com.google.firebase:firebase-crash:11.8.0'
    compile 'com.android.support.constraint:constraint-layout:1.1.0-beta4'
    compile 'com.android.support:support-v4:27.0.2'
    compile 'com.google.android.gms:play-services-location:11.8.0'
    compile 'com.jakewharton:butterknife:8.8.1'
    testCompile 'junit:junit:4.12'
    /*compile 'org.hashids:hashids:1.0.3'
        compile 'com.google.dagger:dagger:2.11'
        compile 'javax.inject:javax.inject:1'
        kapt 'com.google.dagger:dagger-compiler:2.11'
        compile 'io.reactivex.rxjava2:rxjava:2.1.3'
        compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
        kapt 'com.jakewharton:butterknife-compiler:8.8.1'
        compile 'com.amitshekhar.android:rx2-android-networking:1.0.0'
        compile 'com.android.support:multidex:1.0.2'*/
}

apply plugin: 'com.google.gms.google-services'

如果我从应用程序 gradle 中删除以下行,一切正常。但是,如果我添加 kotlin 库,则会出现错误。

compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

如何同时使用 kotlin 和 Java。

最佳答案

最后我找到了答案,这是由于注释的重复输入,可以通过在 gradle 中使用以下行来解决。

configurations {
        compile.exclude group : 'org.jetbrains' , module : 'annotations'
}

关于Java 和 Kotlin 组合构建错误(Duplicate Zip Entry),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48636656/

相关文章:

android - 无法从 Facebook API 检索电子邮件地址

Java 对象构造函数返回 "null"

java - 在 Maven 中配置 hibernate-jpamodelgen

android - 如何从 firebase 中的值中获取键

android - DialogFragment圆角-如何设置透明度

java - onActivityResult() 未调用(MapFragment)

java - 订阅主题时 TestObserver 的奇怪行为

java - 显示倒计时并在倒计时结束时更改为另一个 Activity 。

java - 如何自动生成N "distinct"种颜色?

java - 检查字符串的更好方法?