找不到与Flavors包名称匹配的客户端

时间:2016-12-07 23:03:25

标签: android android-productflavors

我使用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"是找不到的。

1 个答案:

答案 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以获取更多信息。