Android库问题与库模块中的gradle风格

时间:2016-09-01 21:46:07

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

我有一个包含多个库模块的项目。我想在一个模块中创建独特的风格,但我遇到了一个奇怪的错误,我无法解决。

在我的模块的gradle文件中,我有以下内容:

android {
    defaultConfig {
        testApplicationId "com.mytestApplication"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    productFlavors {
       flav1 {
            buildConfigField 'String', 'PROJECT', '"Flav1"'
        }
        flav2{
            buildConfigField 'String', 'PROJECT', '"Flav2"'
        }
    }
}

但我一直收到错误:

Error:Cannot add task ':myaccessorModule:jarRelease' as a task with that name already exists. 

如果我的build.gradle文件是这样编写的:

android {
    defaultConfig {
        testApplicationId "com.mytestApplication"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    productFlavors {
       flav1 {
            buildConfigField 'String', 'PROJECT', '"Flav1"'
        }
    }
}

然后它实际上会在Build Variant窗口中显示flav1Debug和flav1Release选项。

我想知道为什么尝试使用两种或更多口味时会失败?我没有在任何其他模块中定义任何口味。我见过的所有文档都让这看起来很简单。我也尝试通过项目结构GUI将这些风格添加到我的模块中,但我得到了相同的结果。如何让这个模块有多种口味?

干杯。

1 个答案:

答案 0 :(得分:0)

通常,产品风味用于创建具有相同代码的多个apk版本。

因此每种口味都应该有唯一的applicationId

尝试使用

productFlavors {
       flav1 {
            applicationId "com.mytestApplication.flav1"
        }
        flav2{
            applicationId "com.mytestApplication.flav2"
        }
    }

有关详细信息,请https://developer.android.com/studio/build/build-variants.html