我有一个带有2个AAR模块的Android项目-A和B。 模块A使用模块B。
我混淆了这两个模块,因此为了使模块A使用模块B,我在A的保护规则中添加了以下内容:-applymapping ../moduleB/build/outputs/mapping/release/mapping.txt
。
当尝试在Windows上进行构建时,第一次构建始终会失败,并显示以下警告:
Warning: io.objectbox.android.R$drawable: field 'int
objectbox_notification' is not being kept as 'objectbox_notification', but remapped to 'a'
Warning: com.company.moduleB.R$styleable: field 'int DrawerArrowToggle_barLength' is not being kept as 'DrawerArrowToggle_barLength', but remapped to 'dr'
当我再次构建时,构建成功。
如果我手动删除moduleA和moduleB的build文件夹并成功构建它。
查看mappings.txt
文件,我发现proguard映射了moduleB的资源(资源成员和新名称之间存在映射)。
所以我认为,也许这是proguard中的一个错误,即使它没有被混淆,它也会导致它写资源映射。
如何防止proguard混淆资源,还是有更好的方法来混淆2个依赖另一个的AAR库?