问题标签 [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 回答
3280 浏览

android - Gradle SourceSets 按 productFlavor 和 buildType

编辑口味和路径:

目前我有:

rootProject.ext 是一个文件,其中定义了所有 productFlavor 特定配置,如下所示:

在主 build.gradle 我也这样做:apply from: 'variants.gradle'其中包含上述 ext{} 对象。

sourceSet 的定义如下:

这可行,但我想添加一个特定于 productFlavor 的 sourceSet 和 buildType,如下所示:

可以为每个产品风味和每个 buildType 定义,但是当我尝试动态添加它时这不起作用。

对我有用的是这个(感谢这个答案How can I specify per flavor buildType sourceSets?):

但是我真的很希望动态添加它,所以我仍然可以保持我的配置文件完好无损。我的构建配置非常复杂,不像这里描述的那么简单,因此我不需要将源文件放入文件夹 src/flavor1Debug 的建议,因为这些资源也是从其他 productFlavors 使用的,所以这不起作用。

0 投票
2 回答
1044 浏览

android - 如何在 Gradle 的 buildType 中设置版本名称

我可以在风味中设置版本代码和版本名称,但我喜欢在我的构建类型中设置它们。这有可能吗?

0 投票
0 回答
79 浏览

android - Android 检索项目的父项时出错:找不到与集成 ingo sdk 的给定名称匹配的资源

当我在我的项目中集成一个 ingo SDK 时,我使用得到以下错误

检索项目的父项时出错:未找到与给定名称匹配的资源

在此处输入图像描述

模块(项目)的构建工具

ingo SDK的构建工具

请帮我解决这个问题。

0 投票
2 回答
7921 浏览

google-maps - 如何在发布而不是调试中运行android应用程序?

在我的应用程序中,我使用的是谷歌地图。现在,我意识到你有一个 build google maps 密钥和 release google maps 密钥。当我将签名的 apk 启动到应用商店进行测试时,谷歌地图屏幕变灰。而且我必须继续签署一个新的apk并将其加载到Play商店然后进行测试。

如何测试发布版本?请提供非常简单易行的分步说明,或者如果您知道如何使用谷歌地图解决问题,这将很有帮助。

这是我如何在控制台中为我的发行版设置我的谷歌地图 api 的屏幕截图。

在此处输入图像描述

0 投票
2 回答
1479 浏览

android - Android:如何重置发布变体的 resConfigs?

为了加快开发速度,我想做以下事情:

我的应用程序有很多语言,这样做可以在开发过程中节省大量时间。但是,我不想发布带有这个集合的版本。不幸的是,resConfigs在产品风味或构建类型上不可用,因此我无法将其设置debug {}为 .

如何自动resConfigs发布变体中排除?当我为发布而构建时,我不想记住注释掉那行代码。

0 投票
1 回答
53 浏览

android - 为非电话设备构建风味

我正在开发一个可以拨打电话的应用程序,因此需要电话权限,但如果电话不可用,我还有其他选项(例如,运行 Android 的手部扫描仪)。

我是否能够为没有电话的设备制作构建风格(以便我可以删除权限)?

我的目标是让电话和非电话设备都能在 Google Play 上看到我的应用,并且都能够无缝下载和使用它。

0 投票
1 回答
844 浏览

android - Android 风格和构建变体特定的 appboy.xml 文件

关于具有不同风格和构建变体的 Android 应用程序,我非常熟悉如何构建某些字符串资源风格和构建变体特定。但是对于一个文件,我不确定它是如何工作的。

更具体地说,我将 Appboy 集成到我的应用程序中只是为了一种特定的风格,不同的构建变体的 api 密钥是不同的。那么我该如何做到这一点呢?

我的appboy.xml文件如下所示:

谢谢!

0 投票
4 回答
7344 浏览

android - Android Studio 3 + Gradle 4.0 + shrinkResources + libraryProject = 无法在项目中找到匹配的配置

我无法将我的项目迁移到最新的 Gradle 4.0 + Android Studio 3 版本,这给了我各种错误。一点一点地,我设法将它们全部整理出来,除了这个。

为了确定问题:

  1. 我从 Android Studios 项目助手创建了一个最小的应用程序项目
  2. 添加了一个空库模块,然后我将其添加到我的应用程序依赖项中。
  3. 添加了一种风味维度和两种产品风味
  4. 添加了 3 种构建类型并让一种构建类型从另一种继承
  5. 让继承的构建类型启用shrinkResources

最后一步产生上述错误,类似于这个问题: Gradle 4.0 Unable to find a matching configuration

有没有人知道这里出了什么问题或解决这个问题?我也会提交错误报告。

我完整的gradle文件:

0 投票
1 回答
293 浏览

android - 在具有库支持的主项目中找不到具有自定义 buildType 的资源

所以,我有以下项目结构:

我有我的主要项目,其中包含一些不错的布局。我也有我的图书馆项目,其中有一些颜色、尺寸值等。

主要项目

  • 调试 buildType
  • env1 构建类型
  • env2 构建类型

图书馆项目

  • 调试 buildType
  • 发布 buildType

在添加自定义 buildTypes 之前,一切都很完美:主项目有布局,我使用了库项目中的 res/drawables/colors。

在我将自定义 buildTypes 添加到我的主项目 gradle 后,我无法再构建项目,说找不到具有该名称的资源。重要的是,这仅在我选择其他调试 buildType 时才会发生。使用调试它仍然有效,但我无法在端点之间进行更改。

有人可以告诉我,为什么库项目无法提供资源(使用调试配置)?

任何可能的解决方案?

我想要的:最终 APK == 任何自定义 buildType + 库调试 buildType

我现在能做的:final APK == debug buildType + debug BuildType

请从我的主要项目的 gradle 中找到代码:

可调试真;<br> testCoverageEnabled true; <br> //默认值 <br> resValue "string", "app_name", "MyApp S1" <br> buildConfigField "String", "applicationName", '"MyApp S1"' <br> buildConfigField "String", " applicationVersion", '"4.0"' <br> } <br> ENV2 { <br> initWith(buildTypes.debug) applicationIdSuffix '.envtwo' <br> versionNameSuffix “_ENV 2” <br> resValue “string”, “app_name” , “MyApp ENV2” <br> buildConfigField "String", "applicationName", '"MyApp ENV2"' <br> } `

错误信息:

/app/src/main/res/layout/failover_tutorial.xml

错误:(1) 未找到与给定名称匹配的资源(位于“背景”,值为“@color/manual_bg_color”)。

failover_tutorial.xml 位于主项目中,@color 应该来自库。

0 投票
4 回答
5481 浏览

java - BuildConfig.DEBUG 与 ApplicationInfo.FLAG_DEBUGGABLE

正如从代码中获取 androidManifest 的“可调试”值所指的那样?,有两种检查构建是否可调试的选项:

1.) BuildConfig.DEBUG 标志

2.) ApplicationInfo.FLAG_DEBUGGABLE

它们是两个相同的,还是不同的?什么时候用什么?