当在开发时使用debug调试高德地图功能完全没问题,当打包Release包运行时,加载地图就会闪退。
差异:
debug环境没有开启混淆,Release打包开启了混淆
原因:
因为在Release开启混淆过程中把高德地图的so包混淆了,导致找不到相关类而闪退
提示报错截图:
解决方法:
在 proguard-rules.pro 文件加入高德地图混淆,如下:
#3D 地图
-keep class com.amap.api.mapcore.**{*;}
-keep class com.amap.api.maps.**{*;}
-keep class com.autonavi.amap.mapcore.*{*;}
#定位
-keep class com.amap.api.location.**{*;}
-keep class com.loc.**{*;}
-keep class com.amap.api.fence.**{*;}
-keep class com.autonavi.aps.amapapi.model.**{*;}
# 搜索
-keep class com.amap.api.services.**{*;}
# 2D地图
-keep class com.amap.api.maps2d.**{*;}
-keep class com.amap.api.mapcore2d.**{*;}
# 导航
-keep class com.amap.api.navi.**{*;}
-keep class com.autonavi.**{*;}