问题标签 [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 投票
2 回答
862 浏览

android - Android - 将两种构建类型设置为同一个源文件夹

直到最近我们的 Android 应用程序只有两个 buildTypesdebugrelease. 我们刚刚添加了一个qa构建类型,我想让qa 构建类型指向调试源代码,所以我不必复制代码。这可能吗?

qa 和 debug 的主要区别在于 Proguard。我们的 build.gradle 文件如下所示:

文件结构如下所示:

我尝试过使用 sourceSets ,但它似乎不起作用:

0 投票
1 回答
613 浏览

android - 有没有办法为 gradle 中的每个 buildType 设置不同的“androidTest.java.srcDirs”?

我需要为每种构建类型执行 android 测试用例。所以“androidTest.java.srcDirs”对于每种构建类型都有不同的值。

对于 buildType 1 :

androidTest.java.srcDirs = ['tests/intrumentation1']

对于 buildType 2 :

androidTest.java.srcDirs = ['tests/intrumentation2']

出于不同的原因,我不想在这里使用风味。debug { androidTest.java.srcDirs = ['tests/debug'] } alpha { androidTest.java.srcDirs = ['tests/alpha'] } 在这种情况下,第一个总是被下一个覆盖。

任何想法如何为每个 buildType 声明它,以便它不应该被另一个覆盖。

0 投票
2 回答
800 浏览

android - Android Studio:创建自定义构建类型时是否需要创建签名配置?

我已经按如下方式创建了自定义 buildTypes ,并且没有使用默认的调试和发布 buildTypes

这样做的原因:我有几个 productFlavors 并且需要为每个都有一个 PRO 版本,我觉得这比为每个免费的创建单独的 PRO 风味更容易。我的代码使用 BuildConfig 类中的 APPLICATION_ID 处理差异。另一个原因是我有定制的课程,如果我有两种不同的风格,则需要复制两次。我知道我可以配置源集,但是当我有太多口味时我遇到了问题。非常难以追踪。

现在的问题:当我尝试使用自定义 buildType 构建变体运行应用程序时,它要求我为每个自定义构建类型创建一个签名配置。

这是我看到的错误消息

同样,我在执行时在运行控制台中看到一条消息:

失败 [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

由于 APK 未签名或签名不正确,安装失败。如果这是基于 Gradle 的项目,请确保在 Gradle 构建脚本中指定了签名配置。

我了解这可能是必需的。但是,我试图找出的是:是否有我可以更改的设置,以便我创建的 debugfree 和 debugpro buildTypes 可以绕过签名配置要求,就像默认调试 buildType 一样?我知道创建签名配置是一分钟的事情,如果我没有很快得到一些东西,我会这样做。但出于好奇,我想了解需要做什么才能使自定义 buildType 像默认调试 buildType 一样工作,并且不需要签名配置。

尝试设置

(这是默认调试 buildType 和我的自定义调试 buildType 属性的唯一区别)希望它可以像默认调试 buildType 一样工作,但没有。为了让自定义 buildType 像默认的一样工作,还需要更改什么,即不需要签名配置。

0 投票
4 回答
8142 浏览

android - Android Studio:如何删除/过滤默认调试和发布 buildTypes 的构建变体,并只保留那些使用自定义 buildTypes 的变体?

我创建了自定义 buildTypes,如下所示:

我永远不会使用默认的调试和发布构建类型,并希望将它们从构建变体列表中删除。我有不止几种口味,而且变种的列表太大了。删除具有默认调试和发布类型的变体将有所帮助,因为我永远不会使用它们。

我尝试如下使用变体过滤器,但它不起作用

我过滤变体的方式是否有问题,或者是否无法使用默认调试和发布构建类型删除变体。

0 投票
1 回答
239 浏览

android - Gradle 新版本和 Build 版本

我已经更新了 SDK,并且正在使用 Android Studio 2.0(预览版)。所以我认为所有的东西都已经足够更新了。对我和我新创建的项目来说,一切都很好。但是当我从 github 下载代码时,我总是会收到 gradle 版本的错误。

所以这有点烦人。好吧,我很佩服在导入那个 github 项目时 gradle 已经修复了很多东西。但是一旦发生 gradle 版本错误,有时很难知道确切的原因。老实说,我对 gradle 的了解已经够多了,但我总是通过 hit and trial 方法来解决它。所以我有很多困惑,我在下面发布了一个问题

  1. 如何知道新的 gradle 版本正在发生什么。

  2. 如何知道新版gradle现在禁止哪些东西

  3. 如何知道哪些支持依赖项适用于新的 gradle 版本

  4. 如何知道哪个版本的构建工具将与 gradle 完美匹配。

我认为这些问题中有很多愚蠢的东西,我用谷歌搜索了这些问题,但最终决定问你们,因为你们可以正式和随意地澄清我。

如果您深入了解这件事,请回答我的问题。

0 投票
1 回答
219 浏览

java - 构建精简版和完整版应用程序

我正在创建一个应用程序,该应用程序将具有精简版和完整版,一个免费,另一个收取少量费用。由于我不想区分项目以避免更新错误(例如仅在一个版本中更新模块),因此我在我的 Application 类中设置了一个布尔值。

我想知道如何使用来自应用程序的信息确定该布尔值的值。我知道我可以创建具有不同风味和构建类型的应用程序,但我有点迷失了这一切。你能帮我吗?

谢谢!

0 投票
4 回答
9791 浏览

android - 错误:尚不支持内置类收缩器和 multidex

添加useProguard truemultidexEnabled true我的构建类型后,尝试构建时出现此错误:

错误:尚不支持内置类收缩器和 multidex。

运行 Android Studio 2.0 Beta 5。

除了删除multidex之外还有什么解决方案?

0 投票
0 回答
661 浏览

android - 如何根据 buildtype 更改 apk 的后缀

我想在我的构建 gradle 中更改 .apk 文件的生成名称。基于我选择的构建类型。它会自动附加“-release”或“-debug”。我怎样才能改变这个?

构建 gradle 文件

}

我尝试了类似的东西

或者

文件名:

TestApp_1.02.00_458-release.apk

TestApp_1.02.00_458-debug.apk

但这不起作用:-(

编辑:

我确实有一个带有另一个构建 gradle 的通用库:

0 投票
3 回答
11808 浏览

java - Android Studio:检查自定义构建类型

我试图让一段代码检测 BuildType,但我有点卡住了。每当我为 IF 语句输入代码时,它都会说

不兼容的类型。必需:布尔值。找到:java.lang.String

当我认为如果最后有 .toString() 时它必须是一个字符串。

我的检测代码是:

我已经在我的 build.gradle 文件中设置了管理员 BuildType,如下所示:

任何帮助是极大的赞赏。谢谢

0 投票
0 回答
656 浏览

android - 使用“initWith”为“productFlavors”和“sourceSets”复制构造函数

参考这个答案。是否可以像链接答案中的那样创建productFlavorssourceSets使用复制构造函数。initWith那个工作得很好buildTypes

因为buildTypes它是这样完成的:

这可能productFlavorssourceSets