问题标签 [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.
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 使用的,所以这不起作用。
android - 如何在 Gradle 的 buildType 中设置版本名称
我可以在风味中设置版本代码和版本名称,但我喜欢在我的构建类型中设置它们。这有可能吗?
android - Android:如何重置发布变体的 resConfigs?
为了加快开发速度,我想做以下事情:
我的应用程序有很多语言,这样做可以在开发过程中节省大量时间。但是,我不想发布带有这个集合的版本。不幸的是,resConfigs
在产品风味或构建类型上不可用,因此我无法将其设置debug {}
为 .
如何自动resConfigs
从发布变体中排除?当我为发布而构建时,我不想记住注释掉那行代码。
android - 为非电话设备构建风味
我正在开发一个可以拨打电话的应用程序,因此需要电话权限,但如果电话不可用,我还有其他选项(例如,运行 Android 的手部扫描仪)。
我是否能够为没有电话的设备制作构建风格(以便我可以删除权限)?
我的目标是让电话和非电话设备都能在 Google Play 上看到我的应用,并且都能够无缝下载和使用它。
android - Android 风格和构建变体特定的 appboy.xml 文件
关于具有不同风格和构建变体的 Android 应用程序,我非常熟悉如何构建某些字符串资源风格和构建变体特定。但是对于一个文件,我不确定它是如何工作的。
更具体地说,我将 Appboy 集成到我的应用程序中只是为了一种特定的风格,不同的构建变体的 api 密钥是不同的。那么我该如何做到这一点呢?
我的appboy.xml
文件如下所示:
谢谢!
android - Android Studio 3 + Gradle 4.0 + shrinkResources + libraryProject = 无法在项目中找到匹配的配置
我无法将我的项目迁移到最新的 Gradle 4.0 + Android Studio 3 版本,这给了我各种错误。一点一点地,我设法将它们全部整理出来,除了这个。
为了确定问题:
- 我从 Android Studios 项目助手创建了一个最小的应用程序项目
- 添加了一个空库模块,然后我将其添加到我的应用程序依赖项中。
- 添加了一种风味维度和两种产品风味
- 添加了 3 种构建类型并让一种构建类型从另一种继承
- 让继承的构建类型启用
shrinkResources
最后一步产生上述错误,类似于这个问题: Gradle 4.0 Unable to find a matching configuration
有没有人知道这里出了什么问题或解决这个问题?我也会提交错误报告。
我完整的gradle文件:
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 应该来自库。
java - BuildConfig.DEBUG 与 ApplicationInfo.FLAG_DEBUGGABLE
正如从代码中获取 androidManifest 的“可调试”值所指的那样?,有两种检查构建是否可调试的选项:
1.) BuildConfig.DEBUG 标志
2.) ApplicationInfo.FLAG_DEBUGGABLE
它们是两个相同的,还是不同的?什么时候用什么?