android - 新的 gradle 插件版本(4.1.0):不再返回任何资源字段
问题描述
要在 android 应用程序(使用 Kotlin)中获取所有可绘制对象,我调用R.drawable::class.java.fields
.
从昨天开始,它工作得很好,但是当我更新时
classpath "com.android.tools.build:gradle:4.0.2"
至
classpath "com.android.tools.build:gradle:4.1.0"
它只返回一个空数组(因此找不到字段/可绘制对象)。
我改变了除此之外的任何东西,还尝试清理项目,重建它,使 android studio 缓存无效并再次降级和升级,但对我没有任何帮助。
为什么会这样,有没有办法修复那个奇怪的错误?
解决方案
我找到了一个解决方案:
我通过在 proguard 规则中添加一个条目来明确地将字段排除在资源收缩之外,如下所述:https ://github.com/mikepenz/AboutLibraries/issues/331
您只需将以下内容添加到应用程序模块的 proguard-rules.pro 文件中:
-keep class **.R$* {
<fields>;
}
推荐阅读
- apache-zookeeper - “bin/zkServer.sh start”和“bin/zookeeper-server-start.sh config/zookeeper.properties”的区别
- node.js - 刮大篮子产品失败
- mongodb - Mongodb $lookup 检索菜单和子菜单作为子文档数组
- inno-setup - 防止自动从安装到完成页面进行,并允许返回到安装页面查看 Inno Setup 中的结果
- javascript - 如何以编程方式在 select2 多选下拉列表中添加其他选择而不会丢失现有的选定项目
- vue.js - Vue分页-如何使用?
- python - django 中的 socket.io-stream(通道)
- javascript - WebRTC中多次调用getUserMedia实现音视频分割
- android - 当我返回 Activity 时 LiveData 没有更新
- python - 如何在 Python 中正确更新 __version__?