我使用flavor生成了同一个应用程序的多个版本,其中唯一改变的是样式,但我需要将几个apk上传到Playstore,但是在尝试构建项目时遇到问题,标记"找不到包名称的匹配客户"错误。
我的build.gradle文件是:
starwing {
applicationId "mx.com.locker.starwing"
versionCode 11
versionName "1.11"
}
puntoarq {
applicationId "mx.com.locker.starwing.puntoarq"
versionCode 1
versionName "1"
}
" mx.com.locker.starwing.puntoarq"是找不到的。
答案 0 :(得分:1)
尝试使用applicationIdSuffix
更改每种产品风格的应用ID,如:
android {
...
defaultConfig {
applicationId "mx.com.locker"
...
}
productFlavors {
starwing {
applicationIdSuffix ".starwing"
versionCode 11
versionName "1.11"
}
puntoarq {
applicationIdSuffix ".puntoarq"
versionCode 1
versionName "1"
}
}
}
并确保您在各自目录中拥有res文件夹,如下所示:
# common/default resources here
app/src/main/res/values
\___ /styles.xml
|___ /colors.xml
\__ ...
# starwing resources here
app/src/starwing/res/values
\___ /styles.xml
|___ /colors.xml
\__ ...
# puntoarq resources here
app/src/puntoarq/res/values
\___ /styles.xml
|___ /colors.xml
\__ ...
对于源代码文件也是如此,如果您使用的是某些Google服务,则使用google-services.json
。
# common/default resources here
app/src/main/google-services.json
# starwing resources here
app/src/starwing/google-services.json
# puntoarq resources here
app/src/puntoarq/google-services.json
您可以从Android Studio中选择构建变体或运行./gradlew assembleStarwingRelease
或./gradlew assemblePuntoarqRelease
来构建您的特定风格。
您可以查看here以获取更多信息。