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 爬波冷

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容