问题标签 [android-build-type]

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 投票
1 回答
184 浏览

android - Gradle - Android - 添加版本号作为 versionNameSuffix 以调试 buildTypes

我想将版本代码添加为 versionNameSuffix 的后缀。目前,我有:

我怎么能有类似的东西:

我的版本代码基于 productFlavors:

@Resolution:我将 versionCode 从 productFlavors 移到根级别,并使用接受的 anwser 在 versionNameSuffix 中注入 versionCode

0 投票
2 回答
756 浏览

android - Gradle - Android - buildConfigField 基于一对 (productFlavors, buildTypes)

我有一个字段 YOUR_POWER 设置为基于 BuildType 的值。

我的配置build.gradle

我怎样才能有一些配置,如:free + debug = power 70; free + release = power 80; paid + debug = power 90paid + release = power 100

欢迎任何建议/替代解决方案:)

@updated:这只是一个例子,字段类型也可以是字符串。

同样的问题:如何为每个构建变体设置不同的构建类型

0 投票
1 回答
186 浏览

android - 发布带有可调试 true 的发布 apk

我想发布debuggable一个发布版本类型为 true 的库。这将帮助我调试该库。如果这个库投入生产,有什么潜在的问题?它安全吗?debuggable与as一起发布时有什么区别false

0 投票
1 回答
3264 浏览

android-studio - Android Studio 构建变体问题

我很难让 Android Studio 构建正确的构建变体——有时甚至让我根本无法选择构建变体。

基本上,我的项目有两个不同版本,一个是免费版本,一个是“完整”版本。包 ID 是“com.mycompany.myproj”和“com.mycompany.myprojfree”。

一旦我指定了“myproj”和“myprojfree”风格以及“release”和“debug”构建类型,Android Studio 会在列表中生成四个变体:myprojDebug、myprojfreeDebug、myprojfreeRelease 和 myprojRelease。

问题是,选择其中之一并不能可靠地选择用于构建、调试等的变体。例如,我将选择 myprojDebug,点击 Debug,然后 myprojfreeDebug 将构建(可以在控制台中看到),而免费的版本将在连接的设备上打开。

此外,有时我什至无法在构建变体窗格中选择一个或多个构建变体。我可以点击它,但它不会改变。但有时如果我先将其更改为其他内容,它会让我返回并更改未更改的内容。

我看到帖子提到了类似的问题,并遵循了所有建议——清理、重建、删除 .idea、删除构建文件夹、使缓存/重新启动无效、删除 app.iml 等——都无济于事。

值得注意的是,直到昨天我从 Android Studio 3.1 更新到 3.4.1 之前,所有这些都运行良好。

这是我的应用程序 build.gradle 的简化版本:

0 投票
0 回答
266 浏览

android - 如何对 Android 中不同 Gradle buildTypes 的应用程序行为进行单元测试?

我正在尝试测试 Android 应用程序中不同阶段的行为。考虑到官方文档BuildTypes,我在模块中使用不同的 Gradlebuild.gradle来定义每个阶段所需的设置。

每个buildType块都包含一个字符串,该字符串具有相似的键STAGE_NAME和每个阶段的不同值,例如test_stageuat_stage

这些值在应用程序中被访问,以相应BuildConfig.STAGE_NAME地更改一些参数,如 API 端点。

但问题是,似乎没有官方方法可以对每个阶段的结果行为进行单元测试。

Android 文档提到了一种更改测试buildType的方法,该方法明确定义了buildType用于测试的测试,但我想知道是否有另一种方法来测试结果行为。

模块的 build.gradle 文件:

示例 Retrofit 接口,它应该通过访问STAGE_NAME并找出应该使用哪些URL 来为每个阶段使用不同的 API URL API_URL

例如,在这个改造界面中,我想测试getUrl函数的行为,以确保它为每个阶段返回正确的 URL。

更新: 看了这个问题之后,我想知道也许一种测试方法,可能是嘲笑BuildConfig. 但由于STAGE_NAME只有在成功构建后才可用,因此无法正常模拟。

0 投票
0 回答
584 浏览

android - 如何在 network_security_config.xml 中包含 BuildConfig 或资源

为了在 Android 中的 localhost 上进行 http-API 调用,我需要添加一个 network-security-config 来定义我的本地 IP 地址。当然,每个开发者的本地 IP 地址是不同的,所以我把这个值放进去,gradle.properties这样每个人都可以自己覆盖这个值。但是,我还没有找到如何在network-security-config.xml文件中包含该值。我通过创建 abuildConfigFieldresValuein进行了尝试build.gradle,但两者似乎都不起作用。我能做些什么?

network_security_config.xml

应用程序/build.gradle

gradle.properties

欢迎任何其他如何优雅地包含我的本地 IP 地址的解决方案network_security_config.xml

0 投票
0 回答
447 浏览

android - 如何将 gradle buildTypes 配置为仅在 jest 测试通过时运行?

我正在尝试在任何类型的 android 构建之前运行我的 react-native jest 测试。如果测试通过,那么我允许构建,如果没有,我会打印一条错误消息。我查找了 gradle 并且无法弄清楚如何配置我的不同构建类型来做到这一点。我试图开始向我的 build.gradle 文件添加一个非常简单的任务:

和一个

但这只会使整个构建失败。这是我的 build.gradle 的样子:

如何将 gradle 配置为仅在 jest 测试(npm 运行测试)通过时才构建?

0 投票
1 回答
581 浏览

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

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

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

0 投票
1 回答
257 浏览

android - gradle 更新后,Google 服务插件为客户端搜索错误的 google-services.json 文件

更新 gradle 后,我No matching client found for package name在尝试构建我们的release构建类型时遇到错误。我们目前有一个google-services.json包含用于我们发布版本的客户端,一个包含用于所有其他测试环境的客户端。我们过去以以下方式组织文件:

这一直很好,直到我们最近将 gradle 升级到 5.4.1。现在,当尝试构建发布时,Google 服务插件似乎只搜索第一个文件并关闭第二个文件。

当我删除google-services.json测试环境时,发布构建类型再次起作用。有没有办法只用两个google-services.json文件来实现这一点,还是我需要为位于相应目录中的每种构建类型设置一个文件?

0 投票
1 回答
215 浏览

java - 我们可以合并两个安卓源并使用产品风格吗?

我有两个具有相同源代码的 android 项目,只有两个应用程序中的应用程序图标更改。但我没有使用产品风味。现在我需要合并源代码并使用产品风味。所以有可能吗?