Android - 百度地图打包混淆代码后地图崩溃的解决方法
来源:互联网 发布:非对称算法 编辑:程序博客网 时间:2024/06/01 09:29
前言:
之前开发项目用到百度地图,测试的时候没有问题;但是,一打包加混淆之后就出现地图崩溃的问题;项目已经完结,趁有闲暇时间赶紧分享一下自己的解决方案。
问题现象:
之前做百度地图开发时出现一些小问题、一搜发现大家似乎都遇到过这样的问题、大家知道百度地图API需要申请Key,填写安全码。
安全码的组成规则为:Android签名证书的sha1值 “;” packagename(即:数字签名 分号 包名)
debug的话、代码没有经过混淆、百度地图正常使用、只有在打包之后才有这个问题。
但是呢、基本上发布到应用市场的apk一般都是经过加密的、有点知识产权保护意识的都会有代码混淆、
就会用一套自己的keystore,重新设定“安全码后”、导出apk时没有报任何错误
但是当我装载手机上使用百度地图定位时、地图绘制了一大半、就死掉了、留下log控制台有这么句话
com.baidu.platform.comapi.map.MapRenderer.nativeRender(Native Method)
分析原因:
这里只贴了一句、还有很多异常信息哈、经过google查找、然后把百度地图官网又仔细读了便、果然功夫不负有心人、还是让我找到了、其实官方已经明确指出了
3.6.5 为何我的程序在不混淆之前可以运行,混淆之后不能运行了?
栅格版SDK(即1.3.5及之前的版本):
如果您使用proguard进行混淆,请在您的混淆配置文件中添加如下语句:
-keep class com.baidu.mapapi.** {*;}
矢量版SDK(即2.0.0及之后的版本):
如果是用proguard ,以下配置供参考:
#-libraryjars libs/baidumapapi_v3_1_0.jar 替换成自己所用版本的jar-keep class com.baidu.** { *; }-keep class vi.com.gdi.bgl.android.**{*;}其他混淆工具也请进行与此类似的配置,指定对mapapi中的类和方法不进行混淆。
解决方案
在proguard-project.txt中添加如下(引用的是百度baidumapapi_v3_1_0.jar这版的jar包、换成自己的包就好了)、
-libraryjars libs/baidumapapi_v3_3_0.jar-keep class com.baidu.** { *; }-keep class vi.com.gdi.bgl.android.**{*;}
其实最后找到原因就是代码混淆时少了这行、加上之后再次导出、地图功能就可以正常使用了
-keep class vi.com.gdi.bgl.android.**{*;}
0 0
- Android - 百度地图打包混淆代码后地图崩溃的解决方法
- 百度地图混淆代码后地图崩溃问题
- 【baiduMap】解决百度地图混淆代码后崩溃问题
- 百度地图混淆代码
- [已解决]百度地图混淆代码后崩溃问题 (博客以己用)
- 关于Android Stuido 代码混淆打包签名后,高德地图定位出不来
- Android解决百度地图SDK打包后不能显示地图的方法
- android app 集成百度地图,打包签名后地图不显示的解决方案
- android app 集成百度地图,打包签名后地图不显示的解决方案
- 百度地图签名打包后地图失效
- 百度地图在混淆打包时的注意事项
- 【百度地图】百度地图混淆后导航飞掉
- 百度地图,高德地图在打包时都要混淆
- 百度地图,高德地图在打包时都要混淆
- Android程序打包后,百度地图key验证失败解决办法
- Android 百度地图打包后获取不到地址问题
- android studio 百度地图打包后key验证出错问题解决
- android程序打包后百度地图底图不显示解决
- Linux中有好多中不同的shell
- Oracle 11g PL/SQL(基础二)
- 指针函数与函数指针的区别
- 计算程序运行时间的函数Sleep,clock,GetTickCount,QueryPerformanceCounter
- 元组(tuples)
- Android - 百度地图打包混淆代码后地图崩溃的解决方法
- jquery获取元素索引值index()方法
- C++中string类所有函数的使用介绍
- px4_eclipse.bat启动eclipse的一些备注
- SQL语句大全
- 等差数列、等差级数
- cass的顺序。。。
- 相机开发(聚焦、横竖屏拍照、照片存储、连续拍照等)
- Protocol Buffers Lua API总结