在最近重构过的项目中有使用dataBinding或viewBinding,在调试的时候没有问题,但是在混淆过后出现了崩溃:

我们知道viewbinding的初始化是ActivityMainBinding.inflate()
而我是通过反射去初始化viewbinding的
很明显,布局所生成的类在混淆的过程中被干掉了,所以需要在混淆文件(proguard-rules.pro)中配置:
################ ViewBinding & DataBinding ###############
-keepclassmembers class * implements android.viewbinding.ViewBinding {public static * inflate(android.view.LayoutInflater);public static * inflate(android.view.LayoutInflater, android.view.ViewGroup, boolean);public static * bind(android.view.View);
}
经测试,这个方法dataBinding和viewBinidng都适用