百度SDK碰到的坑之总是找不到类

代码是越来越旧,想要升级个新的 结果引发血案!!!!

## BUG

更新了就项目中的百度地图为最新版 ,刚开始觉得没什么,挺好用的还 ,,,, 然后测试也没测出什么大毛病,,

然而.....

上线后问题接踵而来,, 经过客户反映 android4.4.4闪退, , 哎呀我就草了,

搞了个模拟器模拟了一下 ,还真闪退,欲哭无泪!!找不到定位的类了

经过一番折磨是包冲突了, 没办法 还都想用 咋办

于是….

解决方案

在 build.gradle 里defaultConfig下加入

 multiDexEnabled true

并在自己的application继承 MultiDexApplication

O了!

又现 BUG

编译后 一个包类又找不到了 又是百度SDK里的 EnvDrawText类 ,,

尼玛 检查了半天 觉得没问题 , 怎么会找不到呢?

迷茫了一下午 。 TMD是混淆错的 ,,

百度给的混淆TM太旧了。。

-keepclass com.baidu.**{*;}

-keepclass vi.com.**{*;}   

-dontwarn com.baidu.**

可是查看了jar包后,,,

EnvDrawText 不在 vi.com. 包下

居然在

mapsdkvi.com.gdi.bgl.android.java 下面 冤不冤啊!! (这个针对于自定义下载的SDK 例子里还是在原包的) 于是更新混淆

解决方法

加一条混淆

-keep class mapsdkvi.com.gdi.bgl.android.java.**{*;}

完了 这就好了 ,,,迷之说明 百度太坑 不更新例子 新的又给改跑了 , 只能用旧的吗?墙都不服!