问题标签 [android-flavors]

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 投票
3 回答
23848 浏览

android - Android Studio 构建风格 - 如何拥有不同风格的相同源文件

我需要在 android studio 中为应用程序创建一个演示风格。在我的应用程序级别的 gradle 文件中,我创建了另一种名为 demo 的风格,当然默认风格是 full。它看起来像这样:

这是我的项目结构的图像,我在其中创建了一个演示风味目录:

在此处输入图像描述

现在谈这个问题。我有两个名为 Hello.java 的类。两者都有各自的口味并打印不同的东西。我现在将向您展示这两个文件:

这是另一个你好:

注意第一个 hello.java 没有包,即使我有一个包,IDE 也不会编译。看看这张照片:

在此处输入图像描述

现在最后让我们看看 mainActivity.java,看看当我切换构建变体时,它只为“im from main”做祝酒,但如果我使用 demoDebug 构建变体,我需要它来打印“im from demo”。如果我切换构建 demoDebug 的变体,它仍然打印“im from main”。任何人都可以帮忙:

更新

从stackoverflow它说:

如果您想在两种风格中拥有同一类的不同版本,则需要在两种风格中创建它。

然后你的代码src/main/java可以做:

根据选择的风味,使用正确的版本com.foo.A

这就是我想用 Hello 类完成的

0 投票
1 回答
244 浏览

android - Android Studio 1.5.1、Gradle 2.8,带移动设备和可穿戴设备,带免费/付费版本

我不知所措。使用 AS 1.5.1 和 Gradle 2.8,我有移动和穿戴模块。当我选择移动和穿戴风格的调试版本时,我明白我必须手动编译/运行每个版本才能在各自的设备上运行。这没有问题:调试/运行应用程序/等。

然而,对于移动和穿戴风格的发布,当我没有在我的移动/穿戴 build.gradle 文件中创建签名配置部分时,AS 会通过一个对话框提示我这样做,并且在它的底部有“修复”按钮。我首先使用我的磨损模块添加 keyAlias、keyPassword、storeFile 和 storePassword。然后,通过同一个对话框,我选择唯一的 buildType 版本来进行签名配置。当我在该对话框上单击“确定”时,前一个对话框在底部的 FIX 按钮曾经是仍然存在 gradle 错误的地方有文字。我使用移动 gradle 文件执行相同的步骤,它也在对话框中指出仍然存在 gradle 错误。Release 中磨损的结果构建/运行不会创建 android_wear_micro_apk.apk 以将其包含在移动构建中。构建移动模块时,其中没有任何磨损 apk。我的整个应用程序(移动/穿戴)最初是我手动合并到 AS 中的一组 Eclipse 项目(工作并且实际上在 Play 商店中)。

我尝试创建一个带有移动设备和穿戴设备的全新 AS 项目。当我去运行版本时,它也促使我创建了签名概念。然而,android_wear_micro_apk.apk 是在磨损编译期间创建的。此外,移动应用程序包含穿戴的 apk。移动调试 APK 和发布 APK 的大小不同,其中发布版本更大。我知道“android_wear_micro_apk.apk”文件的唯一方法是因为这个新的/精简的测试项目——否则,我的原件没有胶水。

这是移动 build.gradle

这是磨损 build.gradle

0 投票
5 回答
2272 浏览

android - 如何隐藏或添加 Flavor 的菜单项?

我有一个有 3 种不同风格的应用程序fullpart1part2.

所有不同的风格都有不同的包名称,所以我可以将它们作为不同的应用程序发布。

现在我希望它只part1获得一个名为Reload. 其他 2 种口味不应该有这个菜单项。这可能吗?

我尝试了以下菜单资源:

哪里main_activity.xmlpart1

main_activity.xml对于main是:

但是,如果我在任何其他构建变体中构建应用程序part1,我会在MainActivity需要对菜单选择做出反应的地方出现编译错误:

这是很明显的。但是你有什么建议可以为不同的构建风格定制菜单吗?

0 投票
1 回答
380 浏览

android - 如何以编程方式防止“冲突的提供者”消息

谁能告诉我如何在一台设备上安装不同版本的不同版本,而不会在 PlayStore 和 AndroidStudio 中都收到“重复提供程序”错误消息?

我在我的应用程序中针对不同国家/地区有不同的风格,并且总是在安装另一个应用程序之前卸载该应用程序很烦人。

我试过了:

在我的 AndroidManifest 中我添加了:

对我

标签。这并不能解决我的问题。

我不使用 ContentProvider 所以我也尝试向项目添加一个 Stub ContentProvider 类并在里面声明 android:authorities="${providerAuthority}"

包含 Stub ContentProvider 名称的标记 --> 不成功。对于其他一些想法或更正,我会非常高兴。

更新:

尝试在我的设备上安装应用程序时从 Android Studio 收到的错误消息。

这是我从 Android Studio 收到的错误消息

0 投票
1 回答
15 浏览

android - Android 风格的多个正交轴

我目前使用风味为每个客户定制一个应用程序。

我读过:Android Studio Flavor of a Flavor

我现在还需要为不同的用户角色自定义应用程序。

这些定制是正交的,应用程序需要为所有客户/角色组合构建。

实现这一目标的最佳方法是什么?

可以应用不止一种风格——比如 mixins 吗?

(为每个客户/角色组合制作风味将非常浪费。)

0 投票
0 回答
219 浏览

android - Android如何仅针对一种产品风味启用谷歌分析

我有一个项目,其中基于相同的基本代码,我有多种风格(使用不同的谷歌帐户发布的具有不同 applicationId 的不同应用程序)。一切正常,直到我想将谷歌分析添加到我的一种风格中,所以我休学了本教程https://developers.google.com/analytics/devguides/collection/android/v4/#set-up-your-project在获取google-services.json文件并将其放入风味特定目录之后,它就可以工作了。

但不幸的是,问题出在这里:我的其他口味没有编译,因为没有为它们找到 google-services.json。这是gradle失败的日志File google-services.json is missing. The Google Services Plugin cannot function without it.

所以这里有一个问题:我怎样才能只为一种口味启用谷歌分析?

任何帮助将不胜感激

编辑 1这是我的 gradle 文件

0 投票
1 回答
797 浏览

android - 如何在android中组合不同的口味?

我已经在 android 中开发了一个具有不同风格的应用程序,并且我已经在 google play store 中更新了这两种风格。现在我想要的是结合这两种风格并构建一个单一的 apk ,这样组合的风格 apk 将在 Play 商店中更新这两个 apk。

我的问题是——这是否可能,用单个组合风味 apk 更新不同风味 apk,如果可以,如何实现这一点

0 投票
2 回答
134 浏览

android - FLAVOR: run from Android Studio fails - run from device works

I'm trying to have same activity name in different flavors, and install the right one for each flavor.

build.gradle :

AndroidMAnifest.xml :

and every flavorX.java looks like this :

now...
for every flavor i run (with its build variant) by pressing the A.S. "green play button" these things happens:
1. build + compile ends successfully.
2. on the Run view tab i get this message :

3. the app is being installed on the device with the correct icon and name.
4. when pressing the icon that was just installed (=running from device) - everything is OK and the app acts just as requested - with it own flavor for each installation.

this is awful for debugging and fluent developing...
what should i do in order to be able to run each flavor with its variants through A.S??

thanks :)

0 投票
2 回答
217 浏览

android - 在同一个代码库上构建两个不同的 android 应用程序,它们仅在 const 上有所不同

我正在构建两个 android 应用程序,它们在相同的代码库上中继,但它们从中获取文件的服务器地址不同。

到目前为止,我已经创建了两行服务器地址常量,并使用第一个 const 构建了一次应用程序,第二次使用第二个 const 构建了应用程序。

有什么方法可以让我的应用程序编译两次,一次使用第一个常量,第二次使用第二个常量?

我正在使用带有 Gradle 构建的 Android Studio。

谢谢!

0 投票
1 回答
589 浏览

android - 针对不同 API 级别的多个 APK,具有多种风格

我已按照Google 的官方文档为不同的 API 级别创建多个 APK。(我知道不建议使用不同的 APK,但是在我的特定情况下我必须使用它)。

就我而言,这两个 APK 之间的唯一区别只有 AndroidManifest.xml 文件内容。在阅读建议在两个不同的应用程序模块之间创建共享库的官方文档时,我想知道是否可以通过 Gradle 的构建设置中的不同风格来实现相同的效果,为每种风格指定不同的 AndroidManifest.xml 文件和从而生成两个具有不同清单的 APK(这个想法来自这篇文章)。

由于创建两种风格要简单得多(时间和维护方面),而且我只需要两个不同的清单文件,这不是比两个不同应用程序模块之间共享的建议公共库模块更好的选择吗?