Program type already present: org.intellij.lang.an

2020-02-05 11:54发布

问题:

I am getting this error whenever I try to run a program in Kotlin. My gradle files are like this: Project Level Gradle

buildscript {
    ext.kotlin_version = '1.2.30'
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:3.2.0'
    }
}
allprojects {
    repositories {
        google()
        jcenter()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

And App Level Gradle

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
ext.supportLibraryVersion = '27.1.1'
ext.playServices = '11.6.2'
android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.rossa.rossa"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
        mavenCentral()
        google()
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation "com.android.support:appcompat-v7:$supportLibraryVersion"
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation "com.android.support:appcompat-v7:$supportLibraryVersion"
    implementation "com.android.support:design:$supportLibraryVersion"
    implementation "com.android.support:cardview-v7:$supportLibraryVersion"
    implementation 'com.jakewharton.timber:timber:4.6.1'
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
    implementation 'com.squareup.okhttp3:okhttp:3.9.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0'
    implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
    implementation 'com.appolica:flubber:1.0.1'
    implementation 'org.greenrobot:eventbus:3.1.1'
    implementation 'com.github.daniel-stoneuk:material-about-library:2.2.3-support26.1.0'
}

Whenever I try to run the program I get this error

Program type already present: org.intellij.lang.annotations.Flow Message{kind=ERROR, text=Program type already present: org.intellij.lang.annotations.Flow, sources=[Unknown source file], tool name=Optional.of(D8)}

回答1:

Please add following line in your App level build.gradle.

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


回答2:

Excluding the jetbrains annotations module is a workaround; why is it in your project in the first place? Most likely, it got automatically added to your classpath by Android Studio when what you really wanted was Android's own annotations.

So, a better solution is to look for an org.jetbrains:annotations dependency in your build.gradle file[s], like this:

implementation 'org.jetbrains:annotations-java5:15.0'

...and remove it.



回答3:

Program type already present:

org.intellij.lang.annotations.JdkConstants$PatternFlags

Learn how to resolve the issue at: https://developer.android.com/studio/build/dependencies#duplicate_classes.



回答4:

For me, it was just a glitch - "Clean project" helped.