gpt4 book ai didi

Android gradle - 使用配置文件的不同目录设置产品风格,查找所有目录而不仅仅是 1

转载 作者:行者123 更新时间:2023-11-30 05:04:03 25 4
gpt4 key购买 nike

对于要迁移到 firebase 的现有应用,我正在尝试设置开发构建和生产构建。我在 firebase 中使用两个不同的项目,因此有两个不同的 google.services.json。我主要被关注 this example .

剥离的 Gradle 文件,注意 buildTypes 和 productFlavors :

android {
compileSdkVersion 28
defaultConfig {
applicationId "nl.my_project.cwo_app"
(...)
}

buildTypes {
release {
}
debug {
applicationIdSuffix ".debug"
}
}


// This is used to ensure the right version of google-services.json is used.
flavorDimensions "version"
productFlavors {
dev {
dimension "version"
versionNameSuffix "-dev"
}
prod {
dimension "version"
versionNameSuffix "-prod"
}
}
}

dependencies {
...
}

我有以下目录结构:

app/
src/
main/
dev/
google-services.json (for dev only)
prod/
google-services.json (for prod only)

据我所知,这应该确保一旦我构建了任何具有开发风格的东西,它就会使用 dev 文件夹中的 google-services.json。但是当我构建项目时(在选择构建变体之后,例如 devDebug),它给出了一个错误,指出应用程序 ID 不适合。对此进行调查表明,实际上同时使用了 google-services.json。我该如何更改?

构建日志:

14:00:55: Executing task 'build'...

Executing tasks: [build]


> Configure project :app

> Task :app:preBuild UP-TO-DATE
> Task :app:preDevDebugBuild UP-TO-DATE
> Task :app:compileDevDebugAidl NO-SOURCE
(...)

> Task :app:processDevDebugGoogleServices
Parsing json file: E:\projecten\CWO_app\app\src\dev\google-services.json

(...)
> Task :app:processProdDebugGoogleServices FAILED
Parsing json file: E:\projecten\CWO_app\app\src\prod\google-services.json

FAILURE: Build failed with an exception.
Execution failed for task ':app:processProdDebugGoogleServices'.
> No matching client found for package name 'nl.my_project.cwo_app.debug'

如您所见,它创建了一个带有 applicationIdSuffix“.debug”的版本,然后尝试将其与“prod”文件夹中的文件匹配,该文件不使用该 applicationId。我怎样才能阻止它查看这两个文件夹?

最佳答案

问题在于 flavor 和 release 名称的组合。根据提供的 gradle 文件,当构建类型为“调试”时,会添加后缀 .debug,因此如果您的 google-services.json 文件没有具有声明的结果包名称,然后将失败。

可用的包名称组合是:

  • nl.my_project.cwo_app.debug(用于调试构建类型)
  • nl.my_project.cwo_app(用于发布构建类型)

如何解决这个问题

检查您的 google-services.json 可用的包名称。如果上述任何组合未在此处声明,则从 Firebase 控制台添加它们并将新的 json 文件更新到您的项目中。

提示:您可以拥有一个包含所有包名称的 google-services.json 文件,而不是每个风格和/或构建的组合都有一个文件。通常,这在可维护性方面更整洁(一个文件 vs 构建类型 * 风格数量)

关于Android gradle - 使用配置文件的不同目录设置产品风格,查找所有目录而不仅仅是 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54867030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com