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

android - 如何检测我是处于发布模式还是调试模式?

如何在我的代码中检测到我处于发布模式还是调试模式?

0 投票
2 回答
17439 浏览

android - 如何使用构建类型(调试与发布)来设置不同的样式和应用名称?

背景

在 Android Studio 上,您可以有不同的构建类型,每种都有自己的配置,类似于 product-flavors(如图所示

问题

我希望每次我在某个地方安装我的应用程序时,我都会立即知道它是哪种类型 - 发布或调试,只需查看它即可。

为此,我想我可以使用 build.gradle 文件:

问题是,我不知道该放什么。我希望应用程序名称不同(但在字符串文件中包含字符串,因为它已被翻译),并且我想将应用程序中某些内容的样式设置为不同(例如,操作栏的颜色) .

我发现我可以使用“resValue”(在这里找到它),但由于某种原因,无论我做什么,它都不会编译:

  • 如果资源已被声明(如在翻译的 app-name 中),则表示该资源是重复的
  • 如果没有声明资源,我无法通过 code/xml 访问它。

问题

如何为构建类型使用不同的资源值,即使它们已经存在?

0 投票
0 回答
432 浏览

android - 根据 Android Gradle 中的 BuildType 不同的发布和调试配置文件

我有一个 Android 应用程序,它使用两对不同的配置文件来发布和调试构建类型。我将所有 4 个文件保存在 app/extras 目录中,如下所示:

根据选择的构建类型,我希望将相应的 X 和 Y 文件分别复制到 /app 和 /app/src/main/assets 目录。例如,如果正在构建发布 APK,我希望将 X-release 复制到 /app 下(并重命名为 X),并将 Y-release 复制到 /app/src/main/assets 下(并重命名为 Y )。

我一直在阅读 gradle 中的复制文件任务,我尝试了几种不同的选项,但我的任务似乎都没有完成这项工作。你能告诉我如何编写这样的任务吗?我还需要知道 gradle 文件中放置此类任务的位置以及调用/使用它们的位置(例如在 android {...} 中)。任何帮助是极大的赞赏。

请记住,使用 gradle 任务执行此操作只是我的想法。我不致力于这种方法,只要将 X 和 Y 文件复制到正确的目录下,我愿意接受任何替代解决方案(我相信 Y 的一种解决方案可能是将它们放在 /app/src/main/debug /assets 和 /app/src/main/release/assets,但我怀疑这是否适用于 X 文件)。

0 投票
0 回答
524 浏览

android - 我可以在运行时在我的 build.gradle 中确定我的应用的 buildType 吗?

我需要能够仅为名为“ release_beta”的特定 buildType 增加我的 versionCode。我有一个功能可以很好地解决它。我发现 buildTypes 不允许您覆盖 versionCode。此外,我已经在运行许多不同的口味。我不想在更多风味变体中处理 versionCode。

这是不允许的。

我看到的唯一选择是

  1. 我可以在运行时确定我的构建类型build.gradle,并根据buildType. 即调试与release_beta。

就像是...

  1. 除了 之外,我是否可以有另一个配置defaultConfig,并且仅将其应用于某个构建类型,以便我可以为 release_beta 构建类型设置不同的版本代码。

就像是...

0 投票
2 回答
1212 浏览

android - Gradle set property for specific buildType

How can I define a property and set it in a specific buildType?

I have already tried this:

From this, "api", always has the values of the last block. How can I dynamically set a property related to my current buildType until Gradle builds?

0 投票
1 回答
700 浏览

android - 构建类型有什么区别:nightly、release、debug、dev

我想知道这些构建类型之间有什么区别以及它对代码的影响

在 Android Studio 中 - gradle

  • 每晚
  • 发布
  • 调试
  • 开发者

它已经在那里并且问题已经得到解答,请引导我到链接

0 投票
1 回答
1867 浏览

android - Android Gradle:在一台设备上安装所有构建类型

在使用 GCM、ContentProvider、AccountType 时,如何配置我的项目以便能够在发布版本旁边安装调试版本?(不使用香料)

我不断收到错误,例如:INSTALL_FAILED_CONFLICTING_PROVIDERINSTALL_FAILED_DUPLICATE_PERMISSION

0 投票
1 回答
782 浏览

android - 如何在android中支持2个相同分辨率的不同设备上的2个不同的应用程序图标?

我在 Google Playstore 上有一个正在运行的应用程序。现在我必须在某些供应商特定的设备上支持具有不同应用程序图标和标题的应用程序。除此之外,我还必须支持我的应用程序的 Play 商店更新。

我考虑的选项是,

  1. 创建一个单独的 APK 并将该 apk 与供应商的构建一起预烧,但在升级时,应用程序图标和标题的特定更改将丢失。由于 Playstore 支持基于分辨率而不是基于供应商的不同 apk。

  2. 通过更改应用程序的包名称来创建第二个应用程序,并将更新作为不同的应用程序进行维护。但由于其他一些原因,不允许这样做。

  3. 供应商可以在 Launcher 中对我的应用程序进行特定更改,以便它可以在包管理器显示之前替换应用程序图标,但这会再次产生差异,因为 Launcher 和设置会显示 2 个不同的图标。

所以我只是想知道是否有一个可用的选项,我可以根据供应商在 Play Store 上创建一个单独的 APK,这样可以支持供应商特定的图标,也可以支持正常更新。任何帮助将非常感激。

0 投票
0 回答
339 浏览

android - 仅使用 buildToolsVersion '23.0.1' 获取 java.lang.NoClassDefFoundError 问题

我遇到了一个非常奇怪的错误,比如在 Android Studio(Windows 版本)中java.lang.NoClassDefFoundError: com.example.Fragments.SecondarySplashFragment运行我的应用程序时。buildToolsVersion '23.0.1'这个错误对我来说似乎很奇怪而且很新,因为我只在Windows 版本的 Android Studio 中遇到这个问题,而它在Ubuntu 版本中没有任何缺陷。在过去的两天里,我真的不知道该怎么做并且完全坚持这个错误。任何一种解决方案都会对我有很大帮助。我还在下面发布了我的完整 logcat 供您参考,如下所示。

构建.gradle

注意:此问题仅发生在buildToolsVersion 23.0.1但如果我将其更改为buildToolsVersion 22.2.0一切正常而没有任何问题。

提前致谢。

0 投票
1 回答
1552 浏览

android - 具有 3 个风格、3 个 buildTypes 和 2 个 applicationIdSuffixes 的 Android Wear 项目

当我尝试将 wearApp 风格和 buildTypes 与 applicationIdSuffixes 结合后构建我的项目时,我收到以下错误消息:

从我的 app/build.gradle:

从我的磨损/build.gradle:

我从这些知道这<buildType>WearApp是可能的,但我真正需要的是<flavor><BuildType>WearApp(现在似乎不可能):

如果我删除了 applicationIdSuffixes,则保留所有上述 9 个 wearApp 依赖项是可行的,但是无论我在 Android Studio 中选择什么 buildType,它仍然会为每个 buildType 构建一个 Wear apk - 我真的需要 applicationIdSuffixes。

有人有解决方法吗?到今天为止,每次我需要更改 buildType 和/或风味时,我都会手动添加和删除 wearApp 依赖项,从长远来看,这并不是一个让我感到满意的解决方案。

编辑:起初我没有注意到这一点,但由于某种原因,变体 firstDebug、secondDebug 和 thirdDebug 在 build.gradle 中的所有 9 个 wearApp 依赖项中构建得很好。但是,对于 firstCustomerTest、firstRelease、secondCustomerTest、secondRelease、thirdCustomerTest 和 thirdRelease,错误消息仍然相同。所有变体每次都会编译 9 个 wearApp,将其减少到 1 个会很巧妙。