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处理。

本文介绍了在APP开发中使用ProGuard时需要注意的事项,包括在混淆配置文件中结合使用-keep和-dontwarn指令以避免编译错误,启用SourceFile和LineNumberTable便于错误分析,确保在提交代码前编译release版本以检查混淆配置,以及如何处理因混淆导致的运行时错误和反射类的保护方法。
4933

被折叠的 条评论
为什么被折叠?



