admin 管理员组

文章数量: 1184232

解决混淆后项目中jar包产生的错误(Eventbus,Gson,高德地图)

对于混淆后的项目很多依赖的jar包的方法在运行时会提示找不到方法,这时候最好的解决方法就是去.pro文件中使用的jar包进行混淆以及过滤操作。对目前几种比较容易出错的jar包一一枚举出来。

1,GSON,关于gson需要在混淆文件中做过滤操作在上一篇文章中已经详细介绍过了,现在直接贴上代码。

# Gson
-keep class com.google.gson.stream.** { *; }
-keepattributes EnclosingMethod
-keep class com.chuanghaikeji.wisdomcity.bean.** { *; }//替换成自己放实例的包

2,EventBus,注意一点自己的EventBus是哪个版本的,版本不同对应的包名也不一样如:beta1是de开头的包名而3.0是org开头的包名。

#EventBus3.0混淆
-keepattributes *Annotation*
-keepclassmembers class ** {@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {<init>(java.lang.Throwable);
}
#EventBus混淆时注意过滤掉eventbus
-keep class org.greenrobot.eventbus.** { *; }

3,高德地图

#3D 地图 V5.0.0之后:
-keep   class com.amap.api.maps.**{*;}
-keep   class com.autonavi.**{*;}
-keep   class com.amap.api.trace.**{*;}#定位
-keep class com.amap.api.location.**{*;}
-keep class com.amap.api.fence.**{*;}
-keep class com.autonavi.aps.amapapi.model.**{*;}#搜索
-keep   class com.amap.api.services.**{*;}#导航
-keep class com.amap.api.navi.**{*;}
-keep class com.autonavi.**{*;}

本文标签: 解决混淆后项目中jar包产生的错误(Eventbus Gson 高德地图)