我正在制作一个大型项目模块化。我已经分离了代码和布局文件,除了一个问题外一切正常。
我需要在模块中创建 3 种构建类型,即 beta、stage 和 live(原因稍后提到)。现在有一件事我无法理解。
- 当直接从 Android Studio 运行时,我可以选择在构建时使用库模块的哪个构建变体。但
- 生成签名的 apk 时,它不会询问库的构建类型。
一定有一些
- 可以设置的默认值来配置它。我正在寻找那些可以使用的配置 选项
- 生成签名 apk 时默认选择哪种构建类型的库?
我在库模块中创建构建变体的原因是我在模块中使用了 Content Provider,并且在同一设备中同时安装多个构建类型时出现 CONTENT_PROVIDER_AUTHORITY_CONFLICT 错误。
因此,为了同时安装 beta、stage 和 live build,我在 build.gradle 中添加了 Content Authority 作为字符串资源
apply plugin: 'com.android.library'
android {
compileSdkVersion Integer.parseInt(project.COMPILE_SDK_VERSION)
buildToolsVersion project.BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion Integer.parseInt(project.MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.TARGET_SDK_VERSION)
vectorDrawables.useSupportLibrary true
}
buildTypes {
beta {
minifyEnabled false
resValue("string", "account_type", "com.****.****.dev")
resValue("string", "_authority", "com.****.****.dev.syncadapter.finance")
buildConfigField "String", "FinanceContentProvider", "\"com.****.****.dev.syncadapter.finance\""
}
staging {
minifyEnabled false
resValue("string", "account_type", "com.****.****.stage")
resValue("string", "_authority", "com.****.****.stage.syncadapter.finance")
buildConfigField "String", "FinanceContentProvider", "\"com.****.****.stage.syncadapter.finance\""
}
live {
minifyEnabled false
resValue("string", "account_type", "com.****.****.live")
resValue("string", "_authority", "com.****.****.live.syncadapter.finance")
buildConfigField "String", "FinanceContentProvider", "\"com.****.****.syncadapter.finance\""