不同产品风味的同一类给出了重复类的错误

时间:2017-07-25 08:50:43

标签: android gradle build.gradle

在我的代码中,我需要有两种产品风味,其中一种风味(主要)具有最小api等级15和一种风味(mainv9)具有最小api等级9。在主要的味道,我需要包括一个不提供支持味道mainv9的库。

所以我在两个产品风味文件夹中复制了我的文件.java,就像这个

一样

SRC \主\的java \ COM \ UTIL \ Utility.java
SRC \主\谷歌-services.json

SRC \ mainv9 \ java中\ COM \ UTIL \ Utility.java
SRC \ mainv9 \谷歌-services.json

在Utility类的flavor main中,我有与外部库相关的代码,仅支持min api level 15

在Utility类的flavor mainv9中,我有没有外部库调用部分的代码。

我的build.gradle看起来像这样

apply plugin: 'com.android.application'


android {
sourceSets {
    main {
        manifest.srcFile 'src/main/AndroidManifest.xml'
        java.srcDirs = ['src/main/java']
        res.srcDirs = ['src/main/res']
        assets.srcDirs = ['src/main/assets']
    }
    mainv9
            {
                java.srcDirs = [ 'src/mainv9/java']
            }
}


productFlavors {
    defaultFlavor {
        applicationId 'com.app'
        applicationIdSuffix ".default"
        versionNameSuffix "-default"
        minSdkVersion 15
        signingConfig signingConfigs.APPkey
        multiDexEnabled true
    }
    mainv9 {
        applicationId 'com.app'
        applicationIdSuffix ".mainv9"
        versionNameSuffix "-mainv9"
        minSdkVersion 9
        signingConfig signingConfigs.APPkey
        multiDexEnabled true
    }

}

compileSdkVersion 25
buildToolsVersion '25.0.0'
useLibrary 'org.apache.http.legacy'
dexOptions {
    javaMaxHeapSize "4g"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
    debug {
        applicationIdSuffix ".debug"
    }
}
//noinspection GroovyMissingReturnStatement
packagingOptions {
    exclude 'META-INF/maven/com.squareup.picasso/picasso/pom.xml'
    exclude 'META-INF/maven/com.squareup.picasso/picasso/pom.properties'
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LGPL2.1'
}
}


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

    defaultFlavorCompile 'io.lib.android:lib-sdk-base:3+'
}


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

但是当我尝试构建mainv9风格时,我得到的错误是在Utility.java文件中找到重复的类。

请帮助我。

0 个答案:

没有答案