[已解决]百度地图混淆代码后崩溃问题 (博客以己用)
2013-12-30 17:30
351 查看
今天做百度地图时出现一些小问题,一搜发现大家似乎都遇到过这样的问题。
大家知道百度地图API需要申请Key,填写安全码
安全码的组成规则为:Android签名证书的sha1值+“;”+packagename(即:数字签名+分号+包名)
debug的话,代码没有经过混淆,百度地图正常使用
但是大家发布到应用市场的apk一般都是经过加密的,有点知识产权保护意识的都会有代码混淆。就会用一套自己的keystore,重新设定“安全码后”,导出apk时没有报任何错误。但是当我装载手机上使用百度地图定位时,地图绘制了一大半,就死掉了,留下log控制台有这么句话,经过google查找,然后把百度地图官网又仔细读了便,果然功夫不负有心人,还是让我找到了。
com.baidu.platform.comapi.map.MapRenderer.nativeRender(Native Method)
当然这里还报有其他错误
官网明确指出:
如果您使用proguard进行混淆,请在您的混淆配置文件中添加如下语句:
-keep class com.baidu.mapapi.** {*;}
矢量版SDK(即2.0.0及之后的版本):
如果是用proguard ,以下配置供参考:
#-libraryjars libs/baidumapapi_v2_1_2.jar 替换成自己所用版本的jar包
-keep class com.baidu.** { *; }
-keep class vi.com.gdi.bgl.android.**{*;}
其他混淆工具也请进行与此类似的配置,指定对mapapi中的类和方法不进行混淆。
小猿我用的是
target=android-17
proguard.config=proguard-project.txt 低版本有proguard.cfg基本类似
在proguard-project.txt中添加如下(本猿引用的是百度v2_1_3这版的jar包,码友们就换成自己的包就好了)
[html]
view plaincopyprint?
-libraryjars libs/baidumapapi_v2_1_3.jar
-keep class com.baidu.** { *; }
-keep class vi.com.gdi.bgl.android.**{*;}
最后找到原因就是我混淆代码时少了这行
[html]
view plaincopyprint?
-keep class vi.com.gdi.bgl.android.**{*;}
再次导出一版,试试,地图功能就可以正常使用了。
http://blog.csdn.net/knockheart/article/details/12208727转至
大家知道百度地图API需要申请Key,填写安全码
安全码的组成规则为:Android签名证书的sha1值+“;”+packagename(即:数字签名+分号+包名)
debug的话,代码没有经过混淆,百度地图正常使用
但是大家发布到应用市场的apk一般都是经过加密的,有点知识产权保护意识的都会有代码混淆。就会用一套自己的keystore,重新设定“安全码后”,导出apk时没有报任何错误。但是当我装载手机上使用百度地图定位时,地图绘制了一大半,就死掉了,留下log控制台有这么句话,经过google查找,然后把百度地图官网又仔细读了便,果然功夫不负有心人,还是让我找到了。
com.baidu.platform.comapi.map.MapRenderer.nativeRender(Native Method)
当然这里还报有其他错误
官网明确指出:
3.6.5 为何我的程序在不混淆之前可以运行,混淆之后不能运行了?
栅格版SDK(即1.3.5及之前的版本):如果您使用proguard进行混淆,请在您的混淆配置文件中添加如下语句:
-keep class com.baidu.mapapi.** {*;}
矢量版SDK(即2.0.0及之后的版本):
如果是用proguard ,以下配置供参考:
#-libraryjars libs/baidumapapi_v2_1_2.jar 替换成自己所用版本的jar包
-keep class com.baidu.** { *; }
-keep class vi.com.gdi.bgl.android.**{*;}
其他混淆工具也请进行与此类似的配置,指定对mapapi中的类和方法不进行混淆。
小猿我用的是
target=android-17
proguard.config=proguard-project.txt 低版本有proguard.cfg基本类似
在proguard-project.txt中添加如下(本猿引用的是百度v2_1_3这版的jar包,码友们就换成自己的包就好了)
[html]
view plaincopyprint?
-libraryjars libs/baidumapapi_v2_1_3.jar
-keep class com.baidu.** { *; }
-keep class vi.com.gdi.bgl.android.**{*;}
-libraryjars libs/baidumapapi_v2_1_3.jar -keep class com.baidu.** { *; } -keep class vi.com.gdi.bgl.android.**{*;}
最后找到原因就是我混淆代码时少了这行
[html]
view plaincopyprint?
-keep class vi.com.gdi.bgl.android.**{*;}
-keep class vi.com.gdi.bgl.android.**{*;}
再次导出一版,试试,地图功能就可以正常使用了。
http://blog.csdn.net/knockheart/article/details/12208727转至
相关文章推荐
- 【baiduMap】解决百度地图混淆代码后崩溃问题
- Android - 百度地图打包混淆代码后地图崩溃的解决方法
- .NET代码混淆学习和解决视频批量转换中.wmv转换出错问题
- 解决代码混淆后出现javax.mail.nosuchproviderexception smtp的问题
- 解决android导入多个第三方jar包后项目代码混淆的问题
- 类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们的问题的解决方法 续集
- 崩溃,source Insight显示linux代码中文注释乱码问题,以及很傻很天真的解决方法
- Android 代码混淆can’t find referenced class问题解决方案
- 安卓代码混淆与反射冲突,地图无法显示等问题解决及反编译方法
- 【ibokan】新浪博客等一些博客平台贴代码不显示问题解决方法
- 解决CSDN博客中代码块开头出现标签代码问题
- iOS 7.0限制textView、textField文字长度崩溃问题解决 —— HERO博客
- 使用了Ormlite这个jar包,混淆代码就崩溃问题总结
- 解决代码混淆后出现javax.mail.nosuchproviderexception smtp的问题
- 解决CSDN博客插入代码出现<pre></pre>的问题
- 解决android导入多个第三方jar包后项目代码混淆的问题 .
- 安卓代码混淆与反射冲突,地图无法显示等问题解决及反编译方法
- 4000 解决百度地图反复进出偶尔会崩溃的问题
- android打包混淆代码编译会出现很多warling,然后编译失败问题解决办法
- 如何解决从VB中拷贝的代码放在CSDN博客中成为乱码的问题