文档章节

google play Service导入

mutouzhang
 mutouzhang
发布于 2014/03/10 12:17
字数 1792
阅读 628
收藏 0

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的初步介绍:
  https://developers.google.com/maps/documentation/android/
  Introduction
  https://developers.google.com/maps/documentation/android/intro

===================================================

具体步骤:

一、下载 Google Play services SDK :打开Android SDK Manager进行下载。

更新sdk内容,拉到最下面,下载会到你sdk目录的extras目录下,具体路径跟你环境有关,如上图,鼠标移动上去可以看到。

二、申请api key

1.获取数字证书的证书指纹,数字证书(digital certificate)有Debug和Release两种。
本地调试的debug keystore 文件debug.keystore。
默认和虚拟机AVD存放在一起,xxx\.android\,也可以通过Eclipse中的Windows>Preferences>Android中的Default debug keystore进行查看。
Release的是自己发布应用生成的keystore
在cmd命令行里切换到你安装的JDK的bin目录中输入下列命令(路径替换成你自己的):
keytool -v -list -keystore E:\android\avd\.android\debug.keystore

debug.keystore默认密码是android,自己的签名文件是你自己设置的密码,跟发布时输入的密码一样。
查看"证书指纹"中的SHA1中的内容,这个内容记下来,接下来会使用到.
效果图如下:

2.创建Google Maps API Key

https://code.google.com/apis/console
需要先登录,首次使用会出现让你创建API工程的页面.
点击Create project后会跳转到services页面,需要在这个页面选择你要使用的API.选择Google Maps Android API v2.
跳转到服务条款确认的页面,接受后,在显示的页面中左边列表选择”API Access”,然后点击Create new Android key... 按钮.

在弹出的对话框中填写SHA1认证指纹和程序的包命,中间用分号分隔(google自带的google map v2示例程序的包命是com.example.mapdemo):
C6:3D:DB:7B:1C:07:FD:5A:53:E0:85:28:3D:D1:5F:FE:FF:8E:D1:38;com.example.mapdemo
点击create按钮后,就创建了一个新的API key:
Key for Android apps (with certificates)
API key:
AIzaSyDFGLwpvnJ33QxKvHPY7MxrhbNUX29J42Y
Android apps:
C6:3D:DB:7B:1C:07:FD:5A:53:E0:85:28:3D:D1:5F:FE:FF:8E:D1:38;com.example.mapdemo
Activated on: Mar 25, 2013 12:56 AM

上面生成的API key配置到AndroidManifest.xml
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDFGLwpvnJ33QxKvHPY7MxrhbNUX29J42Y"/>

再到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
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyDFGLwpvnJ33QxKvHPY7MxrhbNUX29J42Y"/>

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后在手机上显示的是一片空白 地图显示不出来 只有+-两个标准 包名是匹配的  由于我是新手 第一次生成自个的私人密钥 地图始终显示不出来 我怀疑是我的证书有问题 求助啊..
---------------------------------------------------------
地图出来什么版本跟手机或者虚拟机设置的语言有关的,你把语言设置成中文,地图就变成中文了,这个是google地图自己做的事情。
Release版的和debug版的没什么差别的,就生成api key的SHA1不一样。 可以用ADT插件生成的私人证书然后导出签名。
Release版的证书你不能在eclipse里面直接run的,直接run的是用debug的签名的,Release版的需要Export出正式版apk安装才能正常使用。


© 著作权归作者所有

mutouzhang
粉丝 6
博文 190
码字总数 91235
作品 0
洛阳
程序员
私信 提问
Google Maps Android API v2官网例子使用说明

1.安装Google Play services SDK Google Maps SDK已经作为Google Play services SDK的一部分,所以首先要安装Google Play services SDK,Eclipse->android sdk manager->Extra文件夹下选中g......

FoxHu
2013/07/30
0
0
关于Android使用Google Map Android API V2的问题

以前的google map已经废弃了。现在如果在android上使用google map,和之前的方法有点不太一样 首先,打开Android SDK Manager下载 Extras 下面的Google Play services,如下图所示: 导入googl...

带梦想一7飞
2013/03/29
0
2
Android 的分裂无解,但这并不重要

在今年的 Google I/O 大会上,Google 的战略进一步明确了,操作系统和硬件产品是第二位,跨平台的服务是第一位,人工智能是第一位。从这个角度来看,我们对于 Android 的分裂是否应该有新的看...

oschina
2013/05/20
4.7K
30
Android系统集成Google Maps和Google Search apk注意事项

最近公司由于要参加国际上的某个show,需要集成Google Maps和Google Search的apk,注意是源码集成。在此过程中遇到一些坑,总结下来希望大家注意,以后遇到类似问题可以参考。 大家都知道,源...

Kingguary
2015/11/03
0
0
GooglePlayServicesClient找不到

找到你sdk目录下的sdkextrasgooglegoogleplayserviceslibprojectgoogle-play-services_liblibsgoogle-play-services.jar 将它导入到你的项目中,问题完美解决。...

xunfang
2016/04/08
25
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
3
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
4
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部