28.3ProGuard注意事项
1 在混淆配置文件中,如果使用了-keep指令,最好同时使用-dontwarn指令,否则可能会因为出现warning导致编译出错。
2 以下两个指令最好也要使用上,否则APP崩溃后,出错信息里没有行号,不方便分析解决问题:
-renamesourcefileattributeSourceFile
-keepattributes SourceFile,LineNumberTable
3混淆功能是在编译release版本时生效,开发同事通常只编译debug版本,这往往会导致在自己本机编译正常,但服务器编译release版本时,因为没有配置混淆而出错。
所以在向服务器提交代码前,最好编译下release版本,可以有效避免这个问题。
4有时会遇到release版本有某个问题,但debug版本没有这个问题的情况,是由于release版本编译时修改了类名、函数名和变量名,在运行时找不到对应的名称,导致出错。
解决这样的问题,需在混淆文件中做如下类试配置:
-keepclass com.google.protobuf.** {*;}
5如果有类是通过反射来使用的,那这个类也需要做-keep处理。