问题标签 [android-productflavors]

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 回答
2716 浏览

android - Android:使用相同的包名安装不同的风格

我开发了一个具有 3 种不同风格(生产、测试​​、培训)的 android 应用程序。几乎 99% 的源代码是相同的。每种风格的断言文件夹中只有一个带有服务器 url 的文件是不同的。口味完美。但我希望该应用程序在设备中安装所有 3 个应用程序而不会相互覆盖。由于项目的包名称对于所有风格都是相同的,所以当我安装不同的风格时它会覆盖应用程序。

有什么想法或建议吗?提前致谢。

0 投票
0 回答
61 浏览

gradle - 为 L 构建一个与 ICS 兼容的应用程序

所以昨天我下载了谷歌 I/O Android 应用程序的源代码,它有一个在 L 上运行的版本,并且也向后兼容 ICS。在浏览代码时,我注意到与 L 相关的所有内容都放在了单独的 productFlavor 中(如果您需要有关 productFlavors 的更多信息,请参阅本用户指南)。因为我是 Android Studio 和 gradle 的新手,所以我想知道在开发针对 L 的应用程序时,这是正确且适当的解决方案,但又想与 ICS 版本兼容..?我将开始开发一个符合这些要求的应用程序,并且可能在 L 完全公开之前不会发布,所以我想立即开始构建基础知识,只是想知道这是正确的方法。 ..?

PS我是否需要定义productFalvors,并为相应的口味提供不同的apk-s,还是我仍然可以在java中划分我的逻辑(就像我到目前为止所做的那样)并拥有一个可以在任何地方使用的apk......什么是最好的和为什么?

0 投票
5 回答
34127 浏览

java - 多个dex文件定义/BuildConfig,找不到原因:

我正在使用新的 gradle 构建系统,我面临以下问题:

打印依赖项我什么都看不到,它们是:

我试图验证问题不是重复的支持库,所以我尝试添加:

这导致support-v4无法找到某些库类的错误,因此该库不会从任何其他位置编译。

我想到的可能导致此问题的一件事是,我在Flavorsoreder 中使用功能来创建具有不同资源文件的应用程序的多个版本。

当我查看错误中的文件时,我看到了这个:

所以文件的package in 和String value 中指定的package 是不一样的。

任何人都可以看到我的配置中可能导致此问题的任何问题吗?

0 投票
12 回答
29234 浏览

android - 如何自定义产品风味的 APK 文件名?

我正在脚本中自定义我的 Android 应用程序的 APK 文件的名称,build.gradle如下所示:

现在我正在使用产品口味:

有没有办法自定义每个 APK的名称?我尝试了成功,archiveBaseNamebaseName没有成功。最后,我想提出以下文件:

0 投票
1 回答
1113 浏览

android - Robolectric, Gradle, Espresso with Flavours

我正在使用这个模板来合并 robolectric 测试,但它不起作用,因为我使用了各种口味,我收到了这个错误:

我怎样才能解决这个问题?我正在使用 2 种口味和 3 种构建类型。这是gradle文件:

这是测试模块的gradle文件:

0 投票
1 回答
3044 浏览

android - 使用 Android Studio 中的播放按钮构建风味和 defaultConfig

我创建了以下 gradle.build 文件:

按下Play/Run按钮Android Studio会在连接的设备上构建、编译和安装“flavor1”版本。

如何手动配置要安装的版本?当默认版本(不是风味 - 而是“主”文件夹)也是我有时需要安装的版本时。所以基本上这里有 3 个版本,我需要能够按要求安装每个版本。

0 投票
0 回答
499 浏览

android - 用于分离清单文件的 Android Gradle Build Variant

我有一个结构树的项目,如下所示:

而我的 build.gradle 是这样的:

我在这里想要实现的是使用 AdMob 创建两个单独的活动。下面的姜饼风味使用旧 SDK jar 中的 AdView 类来支持 2.1 和 2.2,而上面的姜饼风味使用播放服务中的 AdView 类。但不知何故,当我在 belowgingerbreadDebug build Variant 上时,我在默认的 AndroidManifest.xml 上得到一个错误,它应该在 belowgingerbread 风格中编译 AndroidManifest.xml。任何想法将不胜感激。

0 投票
2 回答
3351 浏览

java - 具有产品风格的 Android GCM

我有 GCM 示例 android gradle 项目。它运行良好,当我添加 2 种口味时,推送通知停止工作。我的编译清单(取自app\build\intermediates\manifests\ex\debug)文件如下:

我应该怎么做才能解决这个问题?请帮忙。

UPD1。我正在使用 gradle v.0.12+。我认为我的最终清单文件看起来不错,GCMRegistrar.checkManifest(this); - 没有错误,但 GCMRegistrar.isRegistered(this) 总是错误的。=(

UPD2。我的第一个具有原始包名称的风味项目(作为主分支中的项目)运行良好,但具有更改包的第二种风味不起作用(push 的registrationId 仍然为空),但在清单文件中所有许可都是正确的。

0 投票
0 回答
397 浏览

android - Different DefaultActivities for each flavor

I am using product flavors for my app and I need different default activities for each product flavor. Since I can not override classes in main/java, I need to delete the default activity in this folder and copy a custom version of it to flavor1/java and flavor2/java.

Now my project does not compile, because it can not find the default activity. In the manifest in main/java I did not declare a default Activity. Only in the two flavors manifests. Any ideas how to solve this issue?

0 投票
1 回答
490 浏览

android - Android 库 - 使用多种风格并将它们组合起来

我正在 Android 上构建一个库,我需要许多不同的风格。

每种风味可能有也可能没有特殊的依赖关系,但它们中的每一种都至少有一个与之关联的类。

每个人都在单独工作。

1)现在我的一些口味基本上是其他口味的总和。(flavorC 正是flavorA 的依赖和来源和flavorB 的依赖和来源)

我找不到在 build.gradle 中声明它的方法,所以我在复制东西,我讨厌复制东西:)

有人可以指出我该怎么做吗?

2)我还有另一个问题,现在我想构建flavorA时只能执行“gradlew assembleFlavorARelease”。

如果我想同时构建所有风味,我不能使用“gradlew assembleRelease”,因为调用它会构建风味A的lib.aar,然后用风味B的lib.aar等覆盖它......

是否可以为人工制品指定输出?或者可能是一个不同的名字?

非常感谢!