Android程序类型已存在错误

时间:2018-09-24 14:11:54

标签: android android-studio gradle android-gradle build.gradle

我经历了多个具有相同错误的线程以找到解决方案(它们在gradle文件中提及重复的软件包名称,在AndroidManifests中重复和依赖版本不匹配),但是与我的情况都不相同。这是我在构建应用程序时收到的错误消息:

Program type already present: ff.ecochallenges.game.BuildConfig
Message{kind=ERROR, text=Program type already present: ff.ecochallenges.game.BuildConfig, sources=[Unknown source file], tool name=Optional.of(D8)}

我的应用gradle文件如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "ff.ecochallenges"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:design:27.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.google.firebase:firebase-storage:16.0.1'
    implementation 'com.google.firebase:firebase-firestore:17.1.0'
    implementation 'com.android.support:support-v4:27.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:cardview-v7:27.0.2'
    implementation 'com.android.support:recyclerview-v7:27.0.2'
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.google.firebase:firebase-auth:16.0.3'
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.firebaseui:firebase-ui-auth:4.1.0'
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.firebaseui:firebase-ui-storage:0.6.0'
    implementation 'com.github.bumptech.glide:glide:3.7.0'
    implementation 'com.firebaseui:firebase-ui-database:4.1.0'
    implementation 'com.inthecheesefactory.thecheeselibrary:stated-fragment-support-v4:0.9.1'
    implementation 'com.google.android.gms:play-services-auth:16.0.0'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
    implementation 'com.github.varunest:sparkbutton:1.0.5'
    implementation 'info.hoang8f:android-segmented:1.0.6'
    implementation "com.android.support:support-compat:27.1.1"
    implementation project(":garden-release")
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(":game")
    // Required for local unit tests (JUnit 4 framework)

    // Required for instrumented tests
    androidTestImplementation 'com.android.support:support-annotations:24.0.0'
    androidTestImplementation 'com.android.support.test:runner:0.5'
}

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

我添加(游戏)的新库的好处是:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 27



    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    //[DO NOT REMOVE THE COMMENTED CODE BELOW!]
//////////////////////////////////////////////////////
    afterEvaluate {
        assembleDebug.finalizedBy(exportJar)
    }
/////////////////////////////////////////////////////
//[DO NOT REMOVE THE COMMENTED CODE ABOVE!]

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.1'


    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
//[DO NOT REMOVE THE COMMENTED CODE BELOW!]
///////////////////////////////////////////////////////////////////////////////////////////////////
task exportJar(type: Copy) {
    from('build/intermediates/packaged-classes/debug/classes.jar')
    include('classes.jar')
    into('../garden/Assets/Plugins/Android')
    rename('classes.jar', 'ecochallenges.jar')
}
task deleteOldJar(type: Delete) {
    delete '../garden/Assets/Plugins/Android/ecochallenges.jar'
}
exportJar.dependsOn(deleteOldJar)
///////////////////////////////////////////////////////////////////////////////////////////////////
//[DO NOT REMOVE THE COMMENTED CODE ABOVE!]

当我在我的应用程序gradle中注释掉“ implementation project(“:game”)“行时,它的构建没有错误,因此我确定“ game” gradle出现了问题,但我找不到它。

2 个答案:

答案 0 :(得分:0)

其中一行可能会两次定义ff.ecochallenges.game

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(":garden-release")
implementation project(":game")

将假设.jar目录中包含一个libs

或模块garden-release可能依赖于模块game

例如您可以在模块api project(":game")中使用garden-release

答案 1 :(得分:0)

就我而言,我只运行Build->Clean Project并且问题已解决!