使用高德地图的过程中,难免会遇到公司或者个人的多个apk共用一个签名文件的现象。如果刚好是这样,那就非常容易掉进-INVALID_USER_SCODE的坑里,一时间出不来。好吧,然归正传,直奔主题:
原因分析:1.使用高德地图sdk的apk的签名与不签名的区别:
签名apk会读取menifest.xml或者代码控制的高德地图values,而不签名的apk则不会读取相应的值。具体验证可以运行下面的demo(来自高德官方分享到demo哦)
如右图:
2.产生INVALID_USER_SCODE错误的原因,官方给出的原因:如下图:
解释:一句话就是你申请的key不正确。可能原因:签名的keystore文件中的SHA1与申请高德地图使用的SHA1不一致导致。
解决办法:读取keystore文件中的SHA1的值,用该值去申请高德地图对应的key,问题就可以迎刃而解了哦。
实操步骤(windows开发环境下): 1)将签名文件拷贝到C:\Users\zhifakou\.android>(默认路径)下;
2)在dos窗口执行这条命令:keytool -list -v -keystore keystore文件名即可查看SHA1的值;
3)使用该SHA1的值去申请高德地图的key。
效果如下图:
参考资料:http://lbs.amap.com/dev/ticket#/faq/249。