Android - 百度地图打包之后出现的问题
2015-09-11 16:07
309 查看
一、关于百度地图开发-调试通过-打包失败(授权Key不正确)
百度地图开发调试的应用程序正常,打包后显示授权key失败
这是由于调试生成的应用程序使用的是eclipse默认的SHA1的值
我们需要使用自己创建的数字签名来解决这一问题。以下是解决方案
设置android 环境变量
如图所示 打开Cmd输入以下指令
1:cd C:\Program Files\Java\jdk1.7.0_13\bin
2:keytool -genkey -alias android.keystore -keyalg RSA
-validity 20000 -keystore android.keystore
3:输入密钥口令(因为是密文,不要以为键盘没反应, 例如输入111111后直接回车) 其他信息依照提示输入。结束按Y
会生成C:\Program Files\Java\jdk1.7.0_13\bin\android.keystore文件
4:右键工程android tool-》export signed application package
输入C:\Program Files\Java\jdk1.7.0_13\bin\android.keystore和密钥
5:如下图所见产生新的SHA1,替换百度控制台的的SHA1 打包以后的百度地图开发 生成的apk不会提示授权Key失败
二、Android - 百度地图打包混淆代码后地图崩溃的解决方法
前言:
之前开发项目用到百度地图,测试的时候没有问题;但是,一打包加混淆之后就出现地图崩溃的问题;项目已经完结,趁有闲暇时间赶紧分享一下自己的解决方案。
问题现象:
之前做百度地图开发时出现一些小问题、一搜发现大家似乎都遇到过这样的问题、大家知道百度地图API需要申请Key,填写安全码。
安全码的组成规则为:Android签名证书的sha1值 “;” packagename(即:数字签名 分号 包名)
debug的话、代码没有经过混淆、百度地图正常使用、只有在打包之后才有这个问题。
但是呢、基本上发布到应用市场的apk一般都是经过加密的、有点知识产权保护意识的都会有代码混淆、
就会用一套自己的keystore,重新设定“安全码后”、导出apk时没有报任何错误
但是当我装载手机上使用百度地图定位时、地图绘制了一大半、就死掉了、留下log控制台有这么句话
?
分析原因:
这里只贴了一句、还有很多异常信息哈、经过google查找、然后把百度地图官网又仔细读了便、果然功夫不负有心人、还是让我找到了、其实官方已经明确指出了
3.6.5 为何我的程序在不混淆之前可以运行,混淆之后不能运行了?
栅格版SDK(即1.3.5及之前的版本):
如果您使用proguard进行混淆,请在您的混淆配置文件中添加如下语句:
?
矢量版SDK(即2.0.0及之后的版本):
如果是用proguard ,以下配置供参考:
?
其他混淆工具也请进行与此类似的配置,指定对mapapi中的类和方法不进行混淆。
解决方案
在proguard-project.txt中添加如下(引用的是百度baidumapapi_v3_1_0.jar这版的jar包、换成自己的包就好了)、
?
其实最后找到原因就是代码混淆时少了这行、加上之后再次导出、地图功能就可以正常使用了
?
百度地图开发调试的应用程序正常,打包后显示授权key失败
这是由于调试生成的应用程序使用的是eclipse默认的SHA1的值
我们需要使用自己创建的数字签名来解决这一问题。以下是解决方案
设置android 环境变量
如图所示 打开Cmd输入以下指令
1:cd C:\Program Files\Java\jdk1.7.0_13\bin
2:keytool -genkey -alias android.keystore -keyalg RSA
-validity 20000 -keystore android.keystore
3:输入密钥口令(因为是密文,不要以为键盘没反应, 例如输入111111后直接回车) 其他信息依照提示输入。结束按Y
会生成C:\Program Files\Java\jdk1.7.0_13\bin\android.keystore文件
4:右键工程android tool-》export signed application package
输入C:\Program Files\Java\jdk1.7.0_13\bin\android.keystore和密钥
5:如下图所见产生新的SHA1,替换百度控制台的的SHA1 打包以后的百度地图开发 生成的apk不会提示授权Key失败
二、Android - 百度地图打包混淆代码后地图崩溃的解决方法
前言:
之前开发项目用到百度地图,测试的时候没有问题;但是,一打包加混淆之后就出现地图崩溃的问题;项目已经完结,趁有闲暇时间赶紧分享一下自己的解决方案。
问题现象:
之前做百度地图开发时出现一些小问题、一搜发现大家似乎都遇到过这样的问题、大家知道百度地图API需要申请Key,填写安全码。
安全码的组成规则为:Android签名证书的sha1值 “;” packagename(即:数字签名 分号 包名)
debug的话、代码没有经过混淆、百度地图正常使用、只有在打包之后才有这个问题。
但是呢、基本上发布到应用市场的apk一般都是经过加密的、有点知识产权保护意识的都会有代码混淆、
就会用一套自己的keystore,重新设定“安全码后”、导出apk时没有报任何错误
但是当我装载手机上使用百度地图定位时、地图绘制了一大半、就死掉了、留下log控制台有这么句话
?
这里只贴了一句、还有很多异常信息哈、经过google查找、然后把百度地图官网又仔细读了便、果然功夫不负有心人、还是让我找到了、其实官方已经明确指出了
3.6.5 为何我的程序在不混淆之前可以运行,混淆之后不能运行了?
栅格版SDK(即1.3.5及之前的版本):
如果您使用proguard进行混淆,请在您的混淆配置文件中添加如下语句:
?
如果是用proguard ,以下配置供参考:
?
解决方案
在proguard-project.txt中添加如下(引用的是百度baidumapapi_v3_1_0.jar这版的jar包、换成自己的包就好了)、
?
?
相关文章推荐
- Android(java)学习笔记230:服务(service)之绑定服务的细节
- Android系统启动过程
- Android Skia和2D图形系统
- android中的view动画
- Android 第一个OpenGL ES程序
- android opengl es 总结
- android开发中Retrofit的使用
- Android shap selector animation 与 Toast退出问题
- Android 短信发送流程(修改版)
- android 中 view 的宽度和高度
- unable to resolve target 'android-19',Invalid project description
- Android实现多个TextView同时显示跑马灯效果
- Android获取手机联系人电话号码并返回结果
- Android SDK 支持的加密算法
- 【Android】关于pix,dip,dip,sp等相关概念
- Android 中运用Tesseract_ocr识别图片中的字符
- 8.Android String相关类性能测试
- Android实现透明的颜色效果
- Android(java)学习笔记229:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系