记Android新版本构建导致的问题-android 不能直接引用module资源

问题 module之间无法直接引用R文件。

android 不能直接引用module资源

例如

A module com.test.a

B module com.test.b

a module 已经引用Bmodule

但是代码中不能直接调用 R.layout.B

需要 com.test.b.R.layout.B

主要原因是Android Studio Arctic Fox 新版本新建工程,gradle.properties默认会加一行参数

···

#android.nonTransitiveRClass=true

···

这是官方说明

Enables namespacing of each library’s R class so that its R class includes only the

resources declared in the library itself and none from the library’s dependencies,

thereby reducing the size of the R class for that library

启用每个库的R类的名称空间,以便其R类仅包含

在库本身中声明的资源,而没有来自库依赖项的资源,

从而减少了该库的R类的大小

郭霖
Android Studio 新特性详解
https://mp.weixin.qq.com/s/ouI2wD2hjmd02w3DQCgm7Q
支持非传递 R 类
另一个与构建相关的功能,是对非传递 R 类的支持。为了演示这一功能,我切换到了一个更大的项目——k-9 邮件应用。我们首先点击 “Refactor”,然后选择 “Migrate to Non-Transitive R Classes”。此操作将分析整个项目,找到所有引用资源的源文件,并将它们重新编写为项目本地文件,与此同时还会在 gradle.properties 中添加 android.nonTransitiveRClass=true 来开启构建系统中的特定设置。这将使构建能够跳过大量的资源合并,从而有助于提高性能。如果您的项目中包含大量的模块和资源,强烈建议您尝试这一功能。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值