问题标签 [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.
android - 如何在android中的自定义风味文件之间进行通信?
我有两种定制口味——免费和付费。免费风味具有基本功能,而付费风味具有高级功能。
我免费调用付费版本文件。这在付费构建变体中工作正常,因为这将包括(免费和付费)src 文件夹。如果我更改为免费变体,则无法识别对付费变体文件的调用。这样做的正确方法是什么?
gradle - 如何通过通配符模式将目录添加到 Gradle 源集?
我想将各种源类型分成每个模块区域,而不需要:
- 为每个或添加单独的 Android 模块项目(或 build.gradle)
- 将每个模块的源目录显式添加到构建中的适当源集
因此,例如,我真正想做的是:
并将modules/A/assets
,modules/B/assets
等自动添加到资产目录列表中。但不幸的是,这不起作用,也不清楚如何从通配符模式生成/迭代一组目录。
android - 未为多个布局文件夹生成数据绑定类
在 Android Studio 3.6 中,创建新项目后,我无法为多个文件夹创建绑定生成类。
我有多个布局文件夹:
我能够为
资源/布局
但它不适用于其他布局文件夹。
应用程序 gradle 文件:
资源文件夹结构:
我附上了我在 android studio 3.6 中创建的示例项目。 源代码链接
android - Android:是否有任何方法可以在不同的 falvors 和 sourceset 之间共享资源?
我有一个具有以下源集和风味的应用程序:flavorDimensions “brand”
我的应用程序是这样的,99% 的布局和类是相同的。例如,只有布局文件main_activity.xml
在不同风格之间有所不同,但其他 20~30 个布局文件完全相同。我不想将这 20~30 个复制到三个不同的风味源集中。有没有办法在三种风格之间共享它们,如果源集中存在文件,它会覆盖共享文件?(比如想要 android 为drawable
and做的drawble-hdpi
,...)?所以我不想拥有
android - 具有源集的多种风味构建变体创建 .aar 文件生成失败
我们使用源集在我们的应用程序中创建了多个构建变体,我们可以以多种方式运行应用程序,但无法为其创建 aar 文件。在为每种口味生成 .aar 文件时,我们遇到了错误。
`口味:
源集:
`
出了什么问题:任务':sdk:explodeSample-sdkVariantPreprodDeviceDebug'的执行失败。无法展开 ZIP 'C:\Users\xyz.aar',因为它不存在。
请指导我们解决此问题。
android - 声明 res.srcDirs 会破坏 Android Studio 对资源文件的更改检测
我们的 Android 客户端中有多个构建变体。我们刚刚开始通过自定义源集跨构建变体共享源代码和资源。这就是他们的样子:
问题是,由于引入了这种模式,Android Studio 不尊重我们对以下文件所做的更改src/main/res
这意味着,我可以进入我的 Activity 的 XML 文件之一,更改用户显示的字符串,部署到我的设备,并且没有任何更改。Android Studio 可以毫无问题地显示我对 XML 所做更改的预览。我什至可以通过删除代码库引用的多个元素来完全使 XML 无效;它部署时没有任何警告或编译错误。
但是,对资源文件所做的更改src/nonproduction/res
会反映在构建/部署中。
--
我试图解决这个问题:
- 如果 APK 未更改,则关闭并行运行/跳过安装。
- 清理和/或重建
- 删除 .gradle 文件夹
- 无效的缓存/重新启动
这些都不能始终如一地解决问题。为了解决它,我必须更改构建变体,希望它有效,如果不重复尝试上述方法,直到我在构建后真正看到更改。这至少可以说是非常辛苦的。
通过删除res.srcDirs = ['src/main/res', 'src/nonproduction/res']
问题立即解决,我的所有更改立即生效,但随后我失去了源集的价值。
有趣的是,即使只是指定res.srcDirs = ['src/main/res']
也足以对我造成这个问题。我不必声明任何自定义资源目录,以便在构建/部署期间始终识别我的资源更改。
由于我无法共享整个项目,因此我创建了一个示例应用程序,该应用程序可以为我最小限度地重现该问题。
https://github.com/scb5304/resourcechangetest
这是源集的已知缺点还是我的配置有问题?感谢这里的任何指导。