Android之aar包中R文件混淆问题

发现问题

解决问题要对症下药,先看报错日志:

    java.lang.NoSuchFieldError: No static field a of type I in class Lcom/**/**/**/R$layout; or its superclasses (declaration of 'com.**.**.R$layout' appears in /data/app/com.**.**-llnGcHCQ3Er78p3bU2UPnQ==/base.apk)

No static field a,这个field来自于我编译的AAR包,这是什么原因导致的呢?

咋一看怎么会找不到布局的id,难道是哪个support库的版本跟主项目冲突了吗?验证了一下,还是报错。

咋回事呢?细心观察一下,这个field a,看起来像是混淆过的,难道是R文件中的属性被混淆了,导致找不到对应id了?正好报错的是release版本AAR包,于是又用debug版本的AAR包验证了下,没有问题。
于是问题原因基本确定了,应该是混淆导致。

# 对于R(资源)类中的静态属性不能被混淆
-keepclassmembers class **.R$* {
 public static <fields>;
}

重新构建release版本的aar包,并在主工程中应用,一切OK!


作者:Code-Dreamer 
来源:CSDN 
原文:https://blog.csdn.net/qinhai1989/article/details/87865903 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值