介绍

作为在Android应用程序中启用Google API或Firebase服务的一部分,必须将google-services.json插件添加到build.gradle文件中:

dependencies {classpath 'com.google.gms:google-services:4.3.5'// ...
}

google-services插件有两个主要功能:

  1. 处理google-services.json文件并生成可在您的应用程序代码中使用的Android资源。 请参阅添加JSON文件以获取更多信息。
  2. 为已启用的服务所需的基本库添加依赖项。 此步骤要求您在app/build.gradle文件中应用Google Services Gradle插件,如下所示:
apply plugin: 'com.google.gms.google-services'

您可以通过运行**./gradlew :app:dependencies**查看此步骤的结果。

添加json文件

google-services.json文件通常放置在app/目录中(位于Android Studio应用程序模块的根目录)。 从2.2.0版开始,该插件支持构建类型和产品风味特定的JSON文件。 以下所有目录结构均有效:

// dogfood and release are build types.
app/google-services.jsonsrc/dogfood/google-services.jsonsrc/release/google-services.json...

处理json文件

google-services.json文件具有以下基本结构:

{"project_info": {...},"client": [...],
}

project_info对象包含有关项目的常规信息,而客户端数组的每个成员均包含有关已添加到项目中的客户端(Android应用程序)的信息。
在为您的Android应用处理JSON文件时,该插件仅根据以下逻辑使用与您的包名(对于当前构建类型)相匹配的客户端对象:

  • 对于客户端数组的每个成员:

    • 检查client_info/android_client_info/package_name的值
    • 如果程序包名称与此值匹配,则返回成员对象。
  • 如果客户端的任何成员都不匹配包名,则将引发异常。

对于本文档的其余部分,我们将使用{YOUR_CLIENT}来引用由上述过程确定的客户端数组的成员。
JSON处理的主要结果是生成两个XML文件,您可以将它们作为Java代码中的Android资源进行引用。 以下是每个文件的示例:
app/build/generated/res/google-services/{build_type}/values/values.xml

<?xml version="1.0" encoding="utf-8"?>
<resources><! -- Present in all applications --><string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string><! -- Present in applications with the appropriate services configured --><string name="gcm_defaultSenderId" translatable="false">1035469437089</string><string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string><string name="ga_trackingId" translatable="false">UA-65557217-3</string><string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string><string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string><string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string><string name="project_id" translatable="false">mydemoapp</string></resources>

app/build/generated/res/google-services/{flavor}/{build_type}/xml/global_tracker.xml

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="ga_trackingId" translatable="false">UA-65557218-3</string>
</resources>

XML文件中的每个值都位于以下位置的google-services.json文件中。 如果您的Android项目具有某些配置,使您无法使用google-services插件,则可以使用以下值安全地手动重新创建XML文件:
google_app_id:

{YOUR_CLIENT}/client_info/mobilesdk_app_id

gcm_defaultSenderId:

project_info/project_number

default_web_client_id:

{YOUR_CLIENT}/oauth_client/client_id (client_type == 3)

ga_trackingId:

{YOUR_CLIENT}/services/analytics-service/analytics_property/tracking_id

firebase_database_url:

project_info/firebase_url

google_api_key:

{YOUR_CLIENT}/api_key/current_key

google_crash_reporting_api_key:

{YOUR_CLIENT}/api_key/current_key

project_id:

project_info/project_id

故障排除

问:构建时,我收到以下错误消息:“ File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it”。

答:Firebase控制台将帮助您下载google-services.json。此外,大多数API的快速入门指南均包含生成此文件的说明。 下载google-services.json文件后,将其复制到Android Studio项目的app/文件夹中,如果使用多种构建类型,则将其复制到app/src/{build_type}文件夹中。

问:我找不到符号“R.string.gcm_defaultSenderId”,“R.xml.global_tracker”等。

答:请确保您build.gradle文件中的软件包名与您在创建google-services.json文件时输入的包名相匹配。 如果不确定,请再次执行入门流程并获取一个新的json文件。

google-services简介相关推荐

  1. App Engine中的Google Services身份验证,第2部分

    在本教程的第一部分中, 我描述了如何使用OAuth进行Google API服务的访问/身份验证. 不幸的是,正如我稍后发现的那样,我使用的方法是OAuth 1.0,显然现在Google正式弃用了OAu ...

  2. App Engine中的Google Services身份验证,第1部分

    这篇文章将说明如何构建一个简单的Google App Engine(GAE)Java应用程序,该应用程序可针对Google进行身份验证,并利用Google的OAuth授权访问Google的API服务( ...

  3. Android Google Services Framework Google Play

    今天早上看到手机提示系统更新完成,需要重启,然后点击了reboot, 没想到重启后google play 打不开了,并且老是提 has topped. 重新安装以前存储的 google service ...

  4. Google Perftools简介与使用

    一. 安装与简介 从主页http://code.google.com/p/google-perftools/downloads/list下载源码包,解压后使用命令序列./configure;make; ...

  5. Google Sites 简介

    Google Sites 简介 本文地址: http://blog.csdn.net/caroline_wendy Google Sites is the easiest way to make in ...

  6. GMS(Google Mobile Services)简介

    目录 如何获取GMS授权 国内的智能手机为什么没有预装GMS 如何预装GMS 请尊重原创版权,转载注明出处. GMS是Google针对移动终端提供的一系列服务,主要是面向于Android设备,不同于A ...

  7. 1、Google Checkout简介开通流程

    <以下文档由eoeAndroid社区组织策划,整理及发布,版权所有,转载请保留!> 要开通Android Market,是离不开Google Checkout的,原因有: • 注册Andr ...

  8. app engine_App Engine中的Google Services身份验证,第2部分

    app engine 在本教程的第一部分中, 我介绍了如何使用OAuth进行Google API服务的访问/身份验证. 不幸的是,正如我稍后发现的那样,我使用的方法是OAuth 1.0,显然现在Goo ...

  9. Web Services 简介

    Web Services 可使您的应用程序成为 Web 应用程序. Web Services 通过 Web 进行发布.查找和使用. 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解 ...

  10. 谷歌服务框架(google services framework)是什么?

    From:http://www.pc6.com/edu/60889.html 这个是可以在系统软件里面可以删除的一个APK程序,但现在有很多的软件和游戏需要谷歌服务的支持,如果没有安装或者又删除系统软 ...

最新文章

  1. 缺陷检测 | PCB AOI质量检测之自动定位核选取算法
  2. flask 的 request
  3. python 搭建ftp服务器
  4. python003 一 Python起步、pyhthon运行方式、语法结构、python变量
  5. [css] 你有用过IE css的expression表达式吗?说说你对它的理解和它有什么作用呢?
  6. 真格量化——GFTD策略
  7. 离散数学知识点总结-命题逻辑
  8. powershell自动化操作AD域、Exchange邮箱系列(6)——获取并监控内存、CPU占用率
  9. VLOOKUP模糊匹配的妙用
  10. 数学趣事(自然数的因数)
  11. [转]RDLC 动态列
  12. Java开发数据库默认端口及网络常用端口号
  13. Stream介绍及简单操作!
  14. 密码生成器c语言程序,C++全密码生成的实现代码
  15. 华为路由器配置OSPF实现不同网段通信
  16. 免费下载 [discuz!插件] 404页死链优化SEO V2.6
  17. 数据库 schema含义
  18. 微信小程序+云开发项目实战:商品类小程序(化妆品门店)
  19. 2023年,如何管理你的绩效目标?
  20. Mysql varchar类型长度计算(mysql字段长度计算)

热门文章

  1. CPU卡一卡通解决方案
  2. ★三个和尚与机构臃肿的故事
  3. 一键清理系统垃圾.bat文件中的误区,你了解吗?
  4. spotlight搜索失效_如何在iPhone和iPad上自定义Spotlight搜索
  5. Python的GUI图形界面工具大全
  6. 我在华为工作十年的感悟
  7. 记 · 寒风依旧 · 虎跑路和人生路
  8. The seventh Word-Day
  9. mysql插入失败39_Mysql错误:Duplicateentryamp;#39;127amp;#39;forkeyamp;#39;PRIMARYamp;#39;的解决方法-一团网...
  10. <PrivateImplementationDetails>.ComputeStringHash 错误解决办法