问题标签 [android-sourcesets]

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 投票
0 回答
52 浏览

android - 如何在android中的自定义风味文件之间进行通信?

我有两种定制口味——免费和付费。免费风味具有基本功能,而付费风味具有高级功能。

我免费调用付费版本文件。这在付费构建变体中工作正常,因为这将包括(免费和付费)src 文件夹。如果我更改为免费变体,则无法识别对付费变体文件的调用。这样做的正确方法是什么?

0 投票
0 回答
143 浏览

gradle - 如何通过通配符模式将目录添加到 Gradle 源集?

我想将各种源类型分成每个模块区域,而不需要:

  1. 为每个或添加单独的 Android 模块项目(或 build.gradle)
  2. 将每个模块的源目录显式添加到构建中的适当源集

因此,例如,我真正想做的是:

并将modules/A/assets,modules/B/assets等自动添加到资产目录列表中。但不幸的是,这不起作用,也不清楚如何从通配符模式生成/迭代一组目录。

0 投票
2 回答
592 浏览

android - 未为多个布局文件夹生成数据绑定类

在 Android Studio 3.6 中,创建新项目后,我无法为多个文件夹创建绑定生成类。

我有多个布局文件夹:

我能够为

资源/布局

但它不适用于其他布局文件夹。

应用程序 gradle 文件:

资源文件夹结构:

在此处输入图像描述

我附上了我在 android studio 3.6 中创建的示例项目。 源代码链接

0 投票
1 回答
32 浏览

android - Android:是否有任何方法可以在不同的 falvors 和 sourceset 之间共享资源?

我有一个具有以下源集和风味的应用程序:flavorDimensions “brand”

我的应用程序是这样的,99% 的布局和类是相同的。例如,只有布局文件main_activity.xml在不同风格之间有所不同,但其他 20~30 个布局文件完全相同。我不想将这 20~30 个复制到三个不同的风味源集中。有没有办法在三种风格之间共享它们,如果源集中存在文件,它会覆盖共享文件?(比如想要 android 为drawableand做的drawble-hdpi,...)?所以我不想拥有

0 投票
0 回答
24 浏览

android - 具有源集的多种风味构建变体创建 .aar 文件生成失败

我们使用源集在我们的应用程序中创建了多个构建变体,我们可以以多种方式运行应用程序,但无法为其创建 aar 文件。在为每种口味生成 .aar 文件时,我们遇到了错误。

`口味:

源集:

`

出了什么问题:任务':sdk:explodeSample-sdkVariantPreprodDeviceDebug'的执行失败。无法展开 ZIP 'C:\Users\xyz.aar',因为它不存在。

请指导我们解决此问题。

0 投票
0 回答
103 浏览

android - 声明 res.srcDirs 会破坏 Android Studio 对资源文件的更改检测

我们的 Android 客户端中有多个构建变体。我们刚刚开始通过自定义源集跨构建变体共享源代码和资源。这就是他们的样子:

问题是,由于引入了这种模式,Android Studio 不尊重我们对以下文件所做的更改src/main/res

这意味着,我可以进入我的 Activity 的 XML 文件之一,更改用户显示的字符串,部署到我的设备,并且没有任何更改。Android Studio 可以毫无问题地显示我对 XML 所做更改的预览。我什至可以通过删除代码库引用的多个元素来完全使 XML 无效;它部署时没有任何警告或编译错误。

但是,对资源文件所做的更改src/nonproduction/res 反映在构建/部署中。

--

我试图解决这个问题:

  1. 如果 APK 未更改,则关闭并行运行/跳过安装。
  2. 清理和/或重建
  3. 删除 .gradle 文件夹
  4. 无效的缓存/重新启动

这些都不能始终如一地解决问题。为了解决它,我必须更改构建变体,希望它有效,如果不重复尝试上述方法,直到我在构建后真正看到更改。这至少可以说是非常辛苦的。

通过删除res.srcDirs = ['src/main/res', 'src/nonproduction/res']问题立即解决,我的所有更改立即生效,但随后我失去了源集的价值。

有趣的是,即使只是指定res.srcDirs = ['src/main/res']也足以对我造成这个问题。我不必声明任何自定义资源目录,以便在构建/部署期间始终识别我的资源更改。

由于我无法共享整个项目,因此我创建了一个示例应用程序,该应用程序可以为我最小限度地重现该问题。

https://github.com/scb5304/resourcechangetest

这是源集的已知缺点还是我的配置有问题?感谢这里的任何指导。