google-services简介
介绍
作为在Android应用程序中启用Google API或Firebase服务的一部分,必须将google-services.json插件添加到build.gradle文件中:
dependencies {classpath 'com.google.gms:google-services:4.3.5'// ...
}
google-services插件有两个主要功能:
- 处理google-services.json文件并生成可在您的应用程序代码中使用的Android资源。 请参阅添加JSON文件以获取更多信息。
- 为已启用的服务所需的基本库添加依赖项。 此步骤要求您在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简介相关推荐
- App Engine中的Google Services身份验证,第2部分
在本教程的第一部分中, 我描述了如何使用OAuth进行Google API服务的访问/身份验证. 不幸的是,正如我稍后发现的那样,我使用的方法是OAuth 1.0,显然现在Google正式弃用了OAu ...
- App Engine中的Google Services身份验证,第1部分
这篇文章将说明如何构建一个简单的Google App Engine(GAE)Java应用程序,该应用程序可针对Google进行身份验证,并利用Google的OAuth授权访问Google的API服务( ...
- Android Google Services Framework Google Play
今天早上看到手机提示系统更新完成,需要重启,然后点击了reboot, 没想到重启后google play 打不开了,并且老是提 has topped. 重新安装以前存储的 google service ...
- Google Perftools简介与使用
一. 安装与简介 从主页http://code.google.com/p/google-perftools/downloads/list下载源码包,解压后使用命令序列./configure;make; ...
- Google Sites 简介
Google Sites 简介 本文地址: http://blog.csdn.net/caroline_wendy Google Sites is the easiest way to make in ...
- GMS(Google Mobile Services)简介
目录 如何获取GMS授权 国内的智能手机为什么没有预装GMS 如何预装GMS 请尊重原创版权,转载注明出处. GMS是Google针对移动终端提供的一系列服务,主要是面向于Android设备,不同于A ...
- 1、Google Checkout简介开通流程
<以下文档由eoeAndroid社区组织策划,整理及发布,版权所有,转载请保留!> 要开通Android Market,是离不开Google Checkout的,原因有: • 注册Andr ...
- app engine_App Engine中的Google Services身份验证,第2部分
app engine 在本教程的第一部分中, 我介绍了如何使用OAuth进行Google API服务的访问/身份验证. 不幸的是,正如我稍后发现的那样,我使用的方法是OAuth 1.0,显然现在Goo ...
- Web Services 简介
Web Services 可使您的应用程序成为 Web 应用程序. Web Services 通过 Web 进行发布.查找和使用. 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解 ...
- 谷歌服务框架(google services framework)是什么?
From:http://www.pc6.com/edu/60889.html 这个是可以在系统软件里面可以删除的一个APK程序,但现在有很多的软件和游戏需要谷歌服务的支持,如果没有安装或者又删除系统软 ...
最新文章
- 缺陷检测 | PCB AOI质量检测之自动定位核选取算法
- flask 的 request
- python 搭建ftp服务器
- python003 一 Python起步、pyhthon运行方式、语法结构、python变量
- [css] 你有用过IE css的expression表达式吗?说说你对它的理解和它有什么作用呢?
- 真格量化——GFTD策略
- 离散数学知识点总结-命题逻辑
- powershell自动化操作AD域、Exchange邮箱系列(6)——获取并监控内存、CPU占用率
- VLOOKUP模糊匹配的妙用
- 数学趣事(自然数的因数)
- [转]RDLC 动态列
- Java开发数据库默认端口及网络常用端口号
- Stream介绍及简单操作!
- 密码生成器c语言程序,C++全密码生成的实现代码
- 华为路由器配置OSPF实现不同网段通信
- 免费下载 [discuz!插件] 404页死链优化SEO V2.6
- 数据库 schema含义
- 微信小程序+云开发项目实战:商品类小程序(化妆品门店)
- 2023年,如何管理你的绩效目标?
- Mysql varchar类型长度计算(mysql字段长度计算)
热门文章
- CPU卡一卡通解决方案
- ★三个和尚与机构臃肿的故事
- 一键清理系统垃圾.bat文件中的误区,你了解吗?
- spotlight搜索失效_如何在iPhone和iPad上自定义Spotlight搜索
- Python的GUI图形界面工具大全
- 我在华为工作十年的感悟
- 记 · 寒风依旧 · 虎跑路和人生路
- The seventh Word-Day
- mysql插入失败39_Mysql错误:Duplicateentryamp;#39;127amp;#39;forkeyamp;#39;PRIMARYamp;#39;的解决方法-一团网...
- <PrivateImplementationDetails>.ComputeStringHash 错误解决办法