Google Map无法显示:Error contacting Google servers. XXX authentication issue
在开发googlemap时遇到的问题:
06-26 14:05:58.934: E/Google Maps Android API(24276): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
关键一句就是上面的,总是连不上,已经用了代理,所以确定是authenticationissue,网上找了很多资料,逐个试了遍,总算有一个方法成功了:
大体意思是说:不能用Eclipse直接“Runas”安装app到设备上,因为在打包成apk时会对你的apk进行签名,在访问googlemap服务时googleplayservice(或者是googleplaystore)会进行验证,有人指出,需要以下方法安装app:EclipseFile→Export→ExportAndroidApplication,之后就一路跟着走,选择[C:\Users\yourname\.android\debug.keystore](期间用到的默认密码都是“android”),最后会生成apk文件,将其copy进sd卡然后安装;
于是了解了一下debug.keystore这东西的作用,其实这东西可以绑定一个且只能是一个google账户,还记得要申请googleAPIkey吧,当时是用过这个东西中的sha1数字签名的,它与google账户绑定就可以为你自己生成一个clientID,然后[这串签名+你的app包名]就可以生成APIkey(一个APIkey可以对多个app生效的,只要你在APIConsole里面设定过)。
可为什么非要这么做呢,这样岂不是没法dubug了,通过Eclipse安装时必定也会进行签名,为什么这个签名不对?于是“Window→Preferences”,找到Android,下面有个Build,发现了defaultdebugkeystore,其值是“C:\android-sdk-windows\.android\debug.keystore”,这与上面用的不一样,于是在Customerdebugkeystore里面添加C:\Users\yourname\.android\debug.keystore,再通过Eclipse安装app,问题解决了。
关于debug.keystore和release.keystore,还是自行上网看看资料的好