Google Maps API v2 android版本开发 国内手机不支持google play Service相关问题解决--图文教程Google Maps API v2 android版本开发 国内手机不支持google play Service相关问题解决--图文教程 google 地图在国内的使用让人很头痛,麻烦得要死,真搞不明白google为什么不能搞成跟百度地图那样让人使用。 后注:最近刷机后重新安装(默认root的)可以直接在市场上下载几个apk安装后使用google服务了。 google maps依赖于google play Service,而国内手机大部分都没预装google play Service,单独安装也安装不了,要root后经过几步安装系统app才能使用。 v2版本的申请api key方式让调试也变得复杂,开发的jar包不是用普通的导入方式就可以的,还需要导入工程,相对其他功能来说复杂了很多,网上搜索了很多资料,自己测试出了很多问题后总算在手机上看到地图了,这里记录一下,时间是2013-03-25.(以后可能现在可以的方法又不行了)。 把自己手机上最新的apk导出来传到博客上共享了 google服务相关apk-20130325.zip http://files.cnblogs.com/zdz8207/google%E6%9C%8D%E5%8A%A1%E7%9B%B8%E5%85%B3apk-20130325.zip 官方介绍地址 Google Maps Android API v2的初步介绍: =================================================== 具体步骤: 一、下载 Google Play services SDK :打开Android SDK Manager进行下载。 更新sdk内容,拉到最下面,下载会到你sdk目录的extras目录下,具体路径跟你环境有关,如上图,鼠标移动上去可以看到。 二、申请api key 1.获取数字证书的证书指纹,数字证书(digital certificate)有Debug和Release两种。 debug.keystore默认密码是android,自己的签名文件是你自己设置的密码,跟发布时输入的密码一样。 2.创建Google Maps API Key https://code.google.com/apis/console
上面生成的API key配置到AndroidManifest.xml 再到Service里面打开api功能,尤其是android的api v2 哪项,否则无法使用申请的key
三、导入工程 Eclipse中选择 File > Import, Android > Existing Android Code into Workspace. (注意: 是 Android > Existing Android Code into Workspace, 不是General > Existing Projects into Workspace, 否则是无法导入) ,拷贝到自己的工作目录,注意:这个项目和maps项目必须在同一文件夹或者工作空间才行,否则会出错。 导入<android-sdk-folder>/extras/google/google_play_services/samples/maps 注意:新版本eclipse不能先复制到workspace下再导入了,否则会报错。 Eclipse中选择 File > Import, Android > Existing Android Code into Workspace,把此程序导入到Eclipse中.(注意: 这里是 Android > Existing Android Code into Workspace, 而不是General > Existing Projects into Workspace, 否则会出现大量错误.) 导入后发现有大量错误,解决办法 1.删除res\layout下面的options_demo.xml multimap_demo.xml 删除对应类,修改MainActivity。 2.创建libs文件夹,导入android-support-v4.jar 3.修改AndroidManifest.xml 把申请到的api key 填到里面, 注意,你的包名必须和申请的一致才可以,修改了包名以后要重新申请,当然debug.keystore不一样也要重新申请,就是说我这里这个key你是用不了的 <meta-data 4.把google-play-services.jar这个jar包导入,在自己的项目上右键,选Properties,左边选Android,然后在下面的Library里面Add刚才的google-play-services_lib。
注意:一定要变成绿色打勾了以后才可以,当前情况下可以的,关闭后再进入有可能又变红x了,原因应该是路径的问题,上面说过了两个项目必须在同一workspace里面才可以。 另外,手机的google play必须更新到最新版本,否则第一次运行会提示要你先更新了才能使用。 本人的运行效果: 测试过程遇到了很多问题,可能不同环境,不同机型还会遇到其他问题,我遇到的问题要点都在上面说明了,下面是两个报错比较多的异常。 03-25 13:09:00.265: E/AndroidRuntime(16215): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 03-25 15:45:19.311: E/Google Maps Android API(10212): Failed to load map. Could not contact Google servers. 最后为了方便大家把自己手机上最新的apk导出来传到博客上共享了 google服务相关apk-20130325.zip 把两个导入到workspace的项目代码也发上来吧---由于key和环境不一样,其他人导入了也用不了的,只能做参考了。 google-play-services_lib.zip maps.zip ========================================= 收集的一些反馈信息 博主,我虚拟机跑的地图是英文版的 看你截图跑出来是中午地名 这个哪里控制 。 还有博主Release版的 发布后在手机上地图跑出来了没? 我创建的私人证书 然后用里面的SHA1申请了API KEY 替换key后在手机上显示的是一片空白 地图显示不出来 只有+-两个标准 包名是匹配的 由于我是新手 第一次生成自个的私人密钥 地图始终显示不出来 我怀疑是我的证书有问题 求助啊.. ======================================== 分类: android, iphone-ios
发表评论
@流风,飘然的风 我测试的项目是谷歌官方示例项目 Key for Android apps (with certificates) API key: AIzaSyDtSzsnloYpPkYmS75mJB4_ekHInFrlUas Android apps: BD:7D:38:75:76:9D:8A:F5:ED:C5:B4:FD:64:B5:07:44:03:BD:41:83;com.example.mapdemo <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyDtSzsnloYpPkYmS75mJB4_ekHInFrlUas"/> 包名和申请到的api key是对应了的 可是还是显示空白 楼主啊!你真的是令我泪流满面啊!就因为你一句话,一句“注意:这个项目和maps项目必须在同一文件夹或者工作空间才行,否则会出错。 ”我终于解决我的问题啊! 我x度、google,死活没找到根本原因,结果却因为你这句话提醒了我,让我的程序一下子用上了地图,感谢你。 为了让后面的童鞋不要走错路我说说我的情况: 我按照“圣骑士Wind”的文章,做个地图软件,结果,运行时弹出了个错误: android.view.InflateException: Binary XML file line #6: Error inflating class fragment 问题似乎指向“activity_main.xml"布局文件,于是我又回头将Fragment相关的包又改来改去,有说是v4包的问题,可我改了也一样,我甚至看到“圣骑士Wind”那篇文章有人提问相同问题,但是没有解决(当然,我刚刚回复了解决方案)。 最糟糕的是,我以前的那些涉及Fragment的项目全部出现同样的错误,直接崩溃,我在压力中找呀找呀,google play server装了又卸,下载个新的又装,差点以为我的所有项目作废了,正在思量今晚如何过。 结果,就因为看到你的那句话,让我彻底明白了为什么谷歌自带的demo可以我不可以的原因了,现在那个莫名其妙的”android.view.InflateException: Binary XML file line #6: Error inflating class fragment“已经不出现了。虽然不知道这个错误怎么来,但是解决了问题始终是值得庆贺。再次感激楼主。 @流风,飘然的风 仔细检查了一遍我的配置信息也没有发现有哪个地方出错了,能请您帮我看看吗?配置的截图信息在这个文档里: http://pan.baidu.com/share/link?shareid=2318449787&uk=3760930196 博主您好,我尝试用了下您的代码 现在报错主要有几个方面:R.layout.basic_demo R.drawable.newark_nj_1922,R.id.description 都是最后一个词报错,您知道哪出问题了吗? 还有您有QQ等联系方式吗?谢谢 |
|