问题标签 [android-buildconfig]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3416 浏览

android - 错误:程序类型已存在:androidx.core.R

当我尝试进行发布构建时,我遇到了这个问题。

构建.gradle 文件

构建日志

0 投票
0 回答
521 浏览

android - 带有 Json 的 Android BuildConfig 字符串

我想在 buildConfig 中有一个 JSON 格式的字符串,但是构建过程把字符串弄乱了,我不知道如何修复它。

这是 JSON:

在我的 gradle 文件中,我有以下内容(Android Studio 添加了转义)

它从上面编译(自动生成)的是

问题是生成的代码中缺少所有转义。这不是一个有效的字符串。它应该更像这样

但是怎么做?

0 投票
2 回答
431 浏览

java - BuildConfigField 决定如何定义成员(枚举)

build.gradle(模块):

在 MyClass 中,我想根据我定义的 buildConfigField 在构建期间定义枚举成员:

但它不起作用。有可能做我想做的事吗?如果是,那么如何?

0 投票
3 回答
1349 浏览

android - 不要生成 BuildConfig - Gradle Kotlin DSL

要禁用BuildConfig使用 Groovy DSL 生成,可以执行以下操作:

我试图在使用 Gradle 的 Kotlin DSL (build.gradle.kts) 时找到等价物。有人对此有任何运气吗?

0 投票
0 回答
217 浏览

android-gradle-plugin - 任务:transformClassesAndResourcesWithR8ForRelease FAILED 程序类型已经存在 *.BuildConfig

我有一个包含多个模块的 Android Studio (3.4.1) cocos2d-x 项目。我的 settings.gradle 文件定义了 3 个模块:

注意:gameCircleSDK 不需要设置其 projectDir,因为该目录与 proj.android 中的模块名称匹配

我遇到的问题是,当我构建应用程序的发布版本或尝试构建->生成签名包/APK时,我收到以下错误:

注意:com.amazon.ags.BuildConfig 是 gameCircleSDK 模块的自动生成类。gameCircleSDK 的 AndroidManifest.xml 定义了 package="com.amazon.ags" ,这是定义包的唯一位置。

我还搜索了我生成的文件,在发布文件夹中只找到了预期的 BuildConfig.java 文件:com.toa.tetris (ToaTetrisApp)、com.amazon.ags (gameCircleSDK)、org.cocos2dx.lib (cocos2d-x)

我有以下 build.gradle 文件:

proj.android:build.gradle

proj.android:app:build.gradle [ToaTetrisApp]

proj.android:gameCircleSDK:build.gradle

proj.android:..:cocos2d:cocos:platform:android:libcocos2dx:build.gradle

我一直在搜索,发现了很多建议,并尝试了很多都无济于事。以下是我尝试过的一些事情:

  • 我尝试了 File->Invalidate Caches / Restart: 注意:我最初在调试构建和运行时遇到了同样的问题,这是解决该问题的解决方案。
  • 我曾尝试运行“gradlew ToaTetrisApp:dependencies”,但没有看到对 com.amazon.ags 的任何引用,也没有看到任何重复项。我不确定我是否完全理解输出,但对于调试、发布和测试而言,依赖项似乎与预期的一样
  • 当然,我曾多次尝试清理和重建,但无济于事
  • 我已将“multiDexEnabled true”添加到我的 app:build.gradle 文件中。我不确定这是否真的做了什么,或者我是否将它添加到了正确的文件中。这似乎没有解决问题
  • 我试图添加'afterEvaluate { generateReleaseBuildConfig.enabled = false }',但同样,我不确定要将它添加到哪个 build.gradle,所以我无法让它工作

我希望有人可以对这个错误的确切含义以及我如何自己追踪和解决这个问题提供一些解释。这个项目不使用很多外部依赖项,所以我希望很容易追踪到底发生了什么以及为什么会出现这个错误。如果您想提供一些建议,请告诉我您希望我将代码添加到哪个 gradle 文件,因为这通常不会被提及。

0 投票
1 回答
134 浏览

android - 如何从 lib/sdk 获取最终应用程序的 BuildConfig.DEBUG 值

BuildConfig.DEBUG 的值是通用的还是与我的库有关?

更多信息:我正在开发一个 lib/sdk,这个 sdk 是在存储库中构建和部署的。最终的应用程序包括这个部署的 sdk。

问题:是否可以从 lib/sdk 中读取最终应用程序的 BuildConfig.DEBUG (true/false) 值?

Dod:在我的库中,只有当最终应用程序在调试模式下运行时,我才必须启用某些东西。

0 投票
1 回答
581 浏览

android - 根据构建类型更改配置文件中的字符串值 - Android

我在 res/values 位置有一个配置文件 (config.xml)。在这个文件中,我需要添加一个字符串资源,它的值应该根据构建类型(调试/发布)而改变。

无法创建多个文件,例如 res/debug/values/config.xml 和 res/release/values/config.xml。我正在寻找像清单占位符这样的解决方案,我可以在 Gradle 中配置值并在 config.xml 中使用它

0 投票
1 回答
74 浏览

android-build - 如何在 Android.mk 中添加自定义模块描述变量?

我想在构建 android 模块(即可执行文件或共享库或预构建)时访问模块描述变量(自定义变量),并根据其值对可执行文件或共享库或预构建进行一些额外处理。有没有办法做到这一点?

0 投票
4 回答
9833 浏览

android - Android Studio 3.5.2 - 错误:您当前选择的变体 (app-release-unsigned.apk) 的 apk 未签名

一点背景。几个月来我一直在构建/调试/测试我的简单应用程序,没有任何问题。在 AVD 或我实际的 S9 手机上构建/安装。几个月来一切都很好。现在,准备好在 Play 商店中发布我的第一个 beta 版本(我的第一个应用程序)。所以,我按照“签署”我的应用程序的说明进行操作。那行得通,我将我的应用程序包上传到了 Play 商店。现在我再也无法在 Android Studio 中构建/调试/安装了。

错误:您当前选择的变体 (app-release-unsigned.apk) 的 apk 未签名。请为此变体(版本)指定签名配置。

在此处输入图像描述

调试 (Shift+F9) 产生上述错误并显示“编辑配置”对话框。

在此处输入图像描述

我点击“修复”按钮,从那里我不知道该怎么做。或者如何使用这些不同的构建配置。

在此处输入图像描述

构建.gradle

单击“修复”按钮后,我将进入“运行/调试配置”对话框。从那里开始,我完全忘记了为了解决问题需要发生什么。

非常感谢任何帮助。

0 投票
2 回答
113 浏览

android - 如何根据构建类型和构建风格管理配置

在我的应用程序中,我有 2 种构建类型releasedebug下面是代码片段。

我还有 2 种产品风格,下面是代码片段。

现在我总共有 4 种产品类型

  • 风味1调试
  • 风味1释放
  • 风味2调试
  • 风味2释放

现在我需要创建一个变量 app_name,以便不同产品类型的应用名称可以不同。

  • flavor1debug ---------> app_name : flavor1 (debug)
  • flavor1release ---------> app_name : flavor1
  • flavor2debug ---------> app_name : flavor2 (debug)
  • flavor2release ---------> app_name : flavor2

如何使用配置或 strings.xml 实现相同的目标

编辑:假设,我正在使用第三方库并且我想使用不同的身份验证密钥,如何使用Flavor&buildType组合来实现这一点?

即我需要基于以下配置的 4 个不同的键

  1. Flavor1 + 调试 ========= Key1
  2. 风味1 + 释放========= Key2
  3. Flavor2 + 调试 =========== Key3
  4. 风味2 + 释放========== Key4

任何帮助,将不胜感激。