问题标签 [android-variants]

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

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

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

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

0 投票
1 回答
380 浏览

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

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

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

我试过了:

在我的 AndroidManifest 中我添加了:

对我

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

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

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

更新:

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

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

0 投票
1 回答
816 浏览

android - “没有安装包吗?” 项目的异常具有不同的构建变体

我有个问题。项目运行时,我很少遇到致命异常。对于不同的构建变体,我在同一个项目中有两个不同的 android 应用程序。但是它们的包名不同。在清单文件中,写入了我的第一个应用程序的包名。当我运行我的第二个项目时,我很少遇到致命异常。

我该如何解决这个错误?

0 投票
1 回答
1886 浏览

android - 产品风味始终为空返回

在我的 gradle(app) 文件中,我正在设置产品风味和构建类型,如下所示

在 Android Studio 构建变体中,基于上述内容,我得到以下选项:

  • 开发调试
  • 开发发布
  • 模拟调试
  • 模拟发布
  • 产品调试
  • 产品发布
  • qa调试
  • qa发布
  • 分期调试
  • 分期发布

我在我的应用程序中放置了一个代码来打印当前正在运行的构建变体,如下所示。但是下面的代码总是打印为空。为什么会这样?如何在我的应用程序中获得确切的构建变体?任何帮助深表感谢。

0 投票
1 回答
2268 浏览

android - Android Studio:为每个变体提供自己的图标

在 Android Studio 中,我希望我的每个应用变体都有自己的图标。

我尝试了各种方法,包括这里的建议 如何为不同的 gradle buildTypes 提供不同的 Android 应用程序图标? 但它不起作用

这是我在 build.graddle 文件中写的:

而且,由于我在每个变体中共享相同的资源:

  • 我没有为每个变体制作 res 文件夹

  • 我用 xml 和 png 文件的 2 个版本填充了主 res 文件夹的 mipmapXXX 文件夹

但是当我在模拟器中运行应用程序时,图标没有显示(奇怪的是它只显示在我的 shield K1 平板电脑上,我试过的所有其他智能手机都没有显示图标)

更新:

我只是尝试将 mipmapXXX 文件夹添加到每个变体文件夹中,在每个资源上保持完全相同的名称,只更改 png 的内容,但仍然......

我的问题可能来自我的 launcher.xml 吗?

在 Android Studio 中,当您打开 ic_launcher.xml 文件时,您会在 previewx 选项卡中看到图标。现在我只看到默认图标:S

更新二:

问题是我找到了解决方案,我把它放在 build.gradle 中为每个变体

然后将 2 个 ic_launcher 文件放在默认文件夹中。我必须在清单中添加

我认为这是一个糟糕的解决方案:(

我现在正在尝试寻找@W0rmH0le 解决方案,但有些不对劲

如何摆脱自适应图标以支持我的简单图标?

最后更新:

@W0rmH0le 和 @Derek 的提示确实很有帮助,但这里的信息可以帮助我解决我的问题:

1) AS 中的 New -> Image Asset UI 是唯一的方法,您可以一次又一次地使用它来尝试获取所需的图标

2) 完成 Image Asset UI 后,执行“Build -> Clean Project”和“Build -> Rebuild Project”

3)在这个阶段你最好使用自适应图标,因为如果你不这样做,你的应用程序将运行的系统可能会使你的图标变得难看

4)由于您使用的是自适应图标,因此不要尝试使用具有透明度的背景。Image Asset UI 将很好地显示它,但自适应图标背景不支持透明度

5)最后,为了得到2个版本的图标,我在常规过程中添加了一个图标,然后我去资源管理器将mipmapXXX文件夹复制到一个安全的地方。然后我以常规方式添加了另一个图标。为了完成它,我将保存的 mipmap 文件夹粘贴到了 @W0rmH0le 提到的 variante 文件夹树中

0 投票
1 回答
137 浏览

android-studio - 使用 android-apt 时无法将我的 android 代码升级到 gradle 3.5.3

当我尝试发生很多错误时,我无法将代码升级到 gradle 3.5.3。

这是我的旧代码app.gradle

和这个旧项目.gragle

我更新的代码app.gradle但仍然有很多问题

和这个更新的project.gragle

我从堆栈中尝试了很多代码但没有成功请如何解决问题,请

0 投票
0 回答
71 浏览

android-studio - android studio,如何跨多个构建变体共享类接口的不同实现

拥有一个具有几种不同构建类型的 android 应用程序:release, debug, amazon, facebook. 和风味:staging, prod 和构建变体是:

stagingRelease, stagingDebug, stagingAmazon, stagingFacebook,

prodRelease, prodDebug, prodAmazon, prodFacebook,

还具有一个 optionalClass 接口,该接口具有仅用于暂存构建的真实代码实现,以及它的存根版本用于生产构建。

有一个 main\src\java\ someClass.java(将用于所有变体构建),它将具有调用定义在OptionalVerifies

项目文件夹是:

所以构建类型共享的公共代码:release, debug, amazon, facebook在文件夹中app/src/main/

现在,因为有一个OptionalVerifiesImpl.java在用于暂存变体构建中具有真实代码doVerify(Context context),而另一个OptionalVerifiesImpl.java只是存根,没有实现doVerify(Context context)用于在 prod 变体构建中使用。

所以问题是:

OptionalVerifiesImpl.java真正的实现应该放在哪里/哪个文件夹中?以及存根OptionalVerifiesImpl.java应该放在哪里,以便在制作阶段变体时构建OptionalVerifiesImpl.java带有代码实现的代码实现,而当制作产品变体构建存根时,OptionalVerifiesImpl.java将构建其中的一个?

0 投票
0 回答
28 浏览

android - 使用 Jitpack 通过单个 android studio 项目为不同的客户端构建多个库

我正在使用 jitpack 创建库以将其分发给客户端,我的查询是我可以通过维护单个项目来创建多个依赖项。目前我正在为每个客户创建不同的项目,但我的代码是相同的(只有客户端密钥更改),我知道这将是一项繁琐的任务,因为我将不得不在所有项目中添加/修改相同的代码行。有没有更好的方法来处理这个?

我使用产品风格为不同的客户端创建多个 APK/变体,但我不知道如何为创建库做同样的事情。

0 投票
0 回答
21 浏览

android - 安卓 。使用默认风味/构建类型源文件夹

我有几个 buildTypes:debug、test、perf、release,有些类只针对特定的 buildtypes。现在我不能做一些事情,比如

因为我会得到一个重复的类错误。

我不想为所有默认类型创建MyClass变体,因为目前我最终得到了 3 个相同的类,只是为了替换Debug的变体。

这样做的最佳方法是什么?

我正在考虑的一个解决方案是创建另一个源并将其添加到 gradlesourcesets以由每个非调试的 buildType 编译:

但是,我需要为每个人或它们的每个组合提供一个用于 noDebug、noTest、noPerf、noRelease 的包,这是不可持续的。

我想要的只是:“这个类在构建包中,使用它,如果不是,使用另一个包中的那个”

0 投票
2 回答
98 浏览

android - 如何在 Android (Android Studio) 中使用 Build Flavors 创建动态 URL

如何在 Android (Android Studio) 中使用 Build Flavors 创建动态 URL 我的应用程序中的每个环境都有超过 15 个 URL,我们总共有 5 个环境,如何使用公共类中的这些 URL,基于 Activated构建变体。