最近上线的app出现部分页面闪退问题,我刚开始以为是代码的问题,但是查看了一下,本地运行没有问题,也不任何报错,怎么到了线上就有问题呢。后面就想是不是打包过程中出现的问题导致的,再然后就定位到估计是混淆的问题,然后就仔细排查,最后找到问题所在。
最后总结了下:
混淆常用语法
-libraryjars class_path 应用的依赖包,如android-support-v4
-keep [,modifier,...] class_specification 不混淆某些类
-keepclassmembers [,modifier,...] class_specification 不混淆类的成员
-keepclasseswithmembers [,modifier,...] class_specification 不混淆类及其成员
-keepnames class_specification 不混淆类及其成员名
-keepclassmembernames class_specification 不混淆类的成员名
-keepclasseswithmembernames class_specification 不混淆类及其成员名
-assumenosideeffects class_specification 假设调用不产生任何影响,在proguard代码优化时会将该调用remove掉。如system.out.println和Log.v等等
-dontwarn [class_filter] 不提示warnning
1.自定控件
保持自己的自定义控件不被混淆,因为这些会在xml文件中出现,被混淆就找不到报错
-keep class com.konglsd.it.ggapp.Custom.CustomPopupWindow
2.如果使用了Gson之类的工具要使JavaBean类即实体类不被混淆
我的问题酒出现在这里,网络请求出来数据,查看数据没有问题,我都在日志中看到数据了,就是解析不出来,int指输出的都是0,很郁闷。
-keep class com.konglsd.it.ggapp.bean.** { *; }
3. 还有就是一些第三方的文件,在网上都可以找到
网友评论