如何解决使用aar库中的资源时Android应用程序崩溃资源ID始终为零0x0
我已将库项目更新为Android Studio 4.1.0和Android Gradle插件4.1.0。
它会构建一个包含一些Android资源的aar包。
另一个应用程序包含该库,并使用aar包中的资源。
此应用崩溃并出现
Fatal Exception: android.content.res.Resources$NotFoundException
Resource ID #0x0
当我尝试使用aar库中的任何资源时。
解决方法
由于启用代码收缩(Proguard / R8)时,默认情况下不再保留R类的Android Gradle插件行为字段。
要在收缩后保留您的库资源,请将其添加到您的proguard-rules.pro文件中:
# Starting from Android Gradle plugin 4.1.0 fields from R classes are no longer kept by default
-keepclassmembers class your.library.package.R$* {
public static <fields>;
}
请参阅:
- Android Gradle插件4.1.0:App size significantly reduced for apps using code shrinking
- Google问题搜寻者:Resource shrinker: Avoid keeping entire R class
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。