将百度地图集成后运行APP不显示地图内容,查看错误日志:Authentication Error errorcode: 230 uid: -1 appid -1 msg: APP Scode码校验失败
- 现象:百度地图集成时在控制台中需要对应用进行注册,获取一个AppKey,该key根据应用的SHA1值和包名由百度自动生成,然后将该key配置到Manifest文件中就可以使用地图服务,所有步骤都根据申请密钥的步骤,但是配置后无法显示地图内容
- 分析:根据博客 android studio 开发android项目使用百度地图时候出错 与Android Studio中build.gradle的配置中
applicationId
的配置有关,发现应用中Manifest文件中的package
属性值与build.gradle中的applicationId
值不同 - 处理方式:申请AppKey时包名更改为applicationId的值运行OK
- 总结:根据百度官方的说法,百度使用AppKey作为请求参数进行校验,该key根据YourApplicationSHA1;YourPackageName计算生成,理论上按照前面申请密钥的步骤
是可以的,但根据Google官方ApplicationId versus PackageName-中文翻译参考,在Android Studio中官方将R值生成时使用的包名与应用的包名进行了解耦,Manifest中配置的package属性只用于生成R值,而应用的包名则可以在Gradle文件中根据需要配置applicationId,在应用程序运行时,通过getPackageName()
获得的值亲测为applicationId值。
- 结论:百度官方指引不够严谨。
-----------------------update------------------
P.S. : 百度官方指引已完善,详见申请密钥的步骤!(2016/3/18)