我有一个图书馆项目和一个应用程序。我想为图书馆和应用程序都设置2个产品口味(store,dev)。当我为应用程序构建store口味时,我希望从图书馆中使用store口味。同样,当我为应用程序构建dev口味时,我希望从图书馆中使用dev口味。我尝试为图书馆和应用程序设置相同的产品口味,但不起作用。
以下是我的配置:
Library
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "ro.amarkovits.graddletest.lib"
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors{
store{
}
dev{
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
我有以下这些文件: src/main/res/values/strings.xml 和 src/store/res/values/strings.xml
应用程序
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
defaultConfig {
applicationId 'ro.amarkovits.mymodule.app'
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName '1.0'
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors{
store{
}
dev{
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':lib')
}
在这种情况下,我会遇到这个错误:Error:(12, 23) No resource found that matches the given name (at 'text' with value '@string/app_name')。app_name在库中的string.xml文件中被定义(在main和store目录中都有)。如果我从库中删除productFlavors,则可以构建但始终使用main目录中的values.xml。