Introduction
Dans le cadre de l'activation des API Google ou des services Firebase sur votre appareil Android
application, vous devrez peut-être ajouter le plug-in google-services
Fichier build.gradle
:
dependencies {
classpath 'com.google.gms:google-services:4.4.2'
// ...
}
Le plug-in google-services
a deux fonctions principales:
- Traiter le fichier
google-services.json
et produire Android de ressources pouvant être utilisées du code source. Consultez la section Ajouter le fichier JSON pour en savoir plus. Ajoutez des dépendances pour les bibliothèques de base requises pour vos services est activé. Cette étape nécessite d'appliquer l'API Gradle des services Google dans votre fichier
app/build.gradle
, comme ceci:
apply plugin: 'com.google.gms.google-services'
Vous pouvez voir le résultat de cette étape en exécutant
./gradlew :app:dependencies
Ajouter le fichier JSON
Le fichier google-services.json
est généralement placé dans la section
Répertoire app/
(à la racine du module d'application Android Studio). En tant que
À partir de la version 2.2.0
, le plug-in est compatible avec le type de compilation et le type de produit
dans des fichiers JSON spécifiques. Toutes les structures de répertoires suivantes sont valides:
// dogfood and release are build types. app/ google-services.json src/dogfood/google-services.json src/release/google-services.json ...
Remarque:Le fait de fournir un fichier google-services.json dans le répertoire de version permet de de gérer un projet Firebase distinct pour vos APK de production.
Lorsque des types de produit sont utilisés, ces structures de répertoires plus complexes sont est également valide.
// free and paid are product flavors. app/ google-services.json src/dogfood/paid/google-services.json src/release/free/google-services.json ...
Traiter le fichier JSON
La structure de base du fichier google-services.json
est la suivante:
{ "project_info": {...}, "client": [...], }
L'objet project_info
contient des informations générales sur vos
project, tandis que chaque membre du tableau client
contient des informations
sur les clients (applications Android) que vous avez ajoutés au projet.
Lors du traitement du fichier JSON de votre application Android, le plug-in n'utilise que la classe
Un objet client
correspondant au nom de votre package (pour la compilation actuelle
type) selon la logique suivante:
- Pour chaque membre du tableau
client
:- Vérifier la valeur de
client_info/android_client_info/package_name
- Si le nom du package correspond à cette valeur, renvoyez l'objet membre.
- Vérifier la valeur de
- Si aucun des membres de
client
ne correspond au nom du package, une exception est générée.
Dans la suite de ce document, nous utiliserons {YOUR_CLIENT}
pour désigner
le membre du tableau client
déterminé par la procédure ci-dessus.
Le résultat principal du traitement JSON est de produire deux fichiers XML que vous peuvent faire référence à des ressources Android dans votre code Java. Vous trouverez ci-dessous un exemple chaque fichier:
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>
Chaque valeur des fichiers XML est présente dans le google-services.json
aux emplacements ci-dessous. Si votre projet Android comporte des configurations
qui vous empêche d'utiliser le plug-in google-services
, vous pouvez
recréer manuellement les fichiers XML en toute sécurité à l'aide des valeurs suivantes:
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
Dépannage
Q: Lors de la création, le message d'erreur suivant s'affiche : "Fichier Le fichier google-services.json n'apparaît pas dans le dossier racine du module. Services Google Le plug-in ne peut pas fonctionner sans."
R: La console Firebase vous aidera
téléchargez google-services.json
.
De plus, les guides de démarrage rapide de la plupart des API contiennent des instructions
générer ce fichier.
Une fois que vous avez téléchargé le fichier google-services.json
, copiez-le
dans le dossier app/
de votre projet Android Studio ou dans
app/src/{build_type}
si vous utilisez plusieurs types de compilation.
Q: Je ne trouve pas le symbole "R.string.gcm_defaultSenderId". "R.xml.global_tracker", etc.
A: Assurez-vous que le nom du package dans votre fichier build.gradle
correspond à
nom de package que vous avez saisi lors de la création de google-services.json
. En cas de doute, suivez à nouveau la procédure de démarrage
un nouveau fichier json.