AndroidX混淆

最近学习了一下Kotlin,就做了一个项目练练手,提升熟练度,顺便使用到了AndroidX,在打包的时候混淆了一下代码,结果运行后出现了一个错误:

java.lang.NoSuchFieldException:No field mGoButton in class Landroidx/appcompat/widget/SearchView;

第一眼看上去,嗯,我的SearchView 被混淆了然后找不到了,于是添加了一条混淆规则

-keep class androidx.appcompat.widget.SearchView { ImageView mGoButton;}

再次运行,还是出现了这个错误,这不对啊不应该啊,我都添加规则了啊,我以前就是这么混淆的都么得问题啊,咦,等等,我以前好像没有用到AndroidX,难道是这个原因?很有可能啊,我再次看了一下我混淆的规则:

-keep class android.support.** { *; }

-keep interface android.support.** { *; }

-dontwarn android.support.**

这是以前support包的(这咱也不敢删啊,万一删了出问题了咋整),没有添加AndroidX的啊,需要再添加:

-keep class com.google.android.material.** {*;}

-keep class androidx.** {*;}

-keep public class * extends androidx.**

-keep interface androidx.** {*;}

-dontwarn com.google.android.material.**

-dontnote com.google.android.material.**

-dontwarn androidx.**

最后运行一把,欧克,no 爬波冷

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容