如何解决Proguard / R8不会重命名XML布局中使用的类
除了一些将由开发人员使用的类/方法之外,我需要混淆Android库的整个代码。
我成功了,除了在XML布局中调用的某些类没有重命名并且我很难在R8 / Proguard中找到一个选项或强制执行的技巧,即使我必须手动或使用脚本更新这些类也是如此。我的XML布局(我知道R8 / Proguard不会自行编辑它们),这要归功于生成的mapping.txt
文件。
我找到的更接近的问题是Proguard (R8) obfuscate custom view names,但它并不能解决我遇到的问题,R8 / Proguard仍然忽略了这些类的重命名:/
如果有人有想法,欢迎您:) 感谢您的时间和知识;)
[编辑]
我终于放弃了,将占位符放到我的自定义视图的XML布局中,并在运行时对其进行了填充。
遗憾的是,Proguard / R8无法使用aapt:/
处理XML布局中的自定义类重命名。有关信息,我在XML布局中使用fragment
项时也遇到了问题,其中name
属性未重命名,而相应的类却是...
所以对于这些,我也不得不放置占位符并在运行时对其进行充气...
如果有一天有人发现了把戏,我就开个问题;)
解决方法
当前不支持在XML布局内部重命名。在编译过程中,aapt2
tool将为XML布局中存在的名称生成-keep
规则,因此Android运行时将能够执行所需的布局膨胀反射。
通过在配置(proguard-rules.pro
)中添加以下选项
-printconfiguration <somefile>
可以检查完整的配置,包括aapt2
生成的规则。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。