Le contexte:
J'essaie de configurer Google Analytics pour mon application. (ayant 4 personnalités buildTypes
et plus que quelques productFlavors
)
Cela fonctionne bien lorsque je sélectionne le Build Variant
qui a la applicationId
définie sur com.my.app.package.name
(le nom du paquet utilisé lors de la génération du google-services.json
). Mais, mes autres saveurs ont des applications différentes.
J'ai suivi le officiel devguide pour le mettre en place.
L'erreur que j'obtiens lorsqu'une autre variante de construction est sélectionnée dans Build Variants Tab
(qui a une applicationId
différente (nom du package) est la suivante:
Erreur: L'exécution a échoué pour la tâche ': app: processAllcategoriesDebugfreeGoogleServices'.
Aucun client correspondant trouvé pour le nom de package 'com.my.app.package.name.debug'
Explication du message d'erreur:
Dans le nom de la tâche dans le message d'erreur ci-dessus, Debugfree
est ma variable personnalisée buildType
et Allcategories
est l'une de mes productFlavors
.
Je comprends l'erreur et je sais que le nom du paquet est différent de ce que j'ai utilisé lors de la génération du JSON, mais c'est ce que j'essaie de trouver un moyen de contourner le problème.
Problème:
Maintenant, le google-services.json
réside dans le dossier app
et par conséquent, je ne parviens pas à les séparer pour chaque saveur de produit en les déposant dans le dossier du jeu source spécifique à une saveur.
Des questions:
byildType
pour le débogage des suffixes .debug
à la applicationId
(nom du paquet). Est-il possible de le faire fonctionner avec le google-services.json
qui a ma version applicationId
(c'est-à-dire sans le suffixe .debug
)google-services.json
sans utiliser de fichiers et de tâches distincts pour copier le fichier requis dans le dossier app
. Je sais que cela peut être fait en utilisant task
comme mentionné dans cet article . Existe-t-il un moyen plus simple d’avoir un seul fichier ou de choisir le bon fichier en fonction de la configuration de Gradle?package_name
dans google-services.json
porte le nom du paquetage com.my.app.package.name
. Puis-je ajouter manuellement plusieurs noms de paquetages pour toutes les variantes de construction? Si oui, comment faire ça? Impossible de trouver des instructions dans les documentations.Trouvé ceci:
Le fichier google-services.json est généralement placé dans l'application / répertoire, mais à partir de la version 2.0.0-alpha3 du support du plugin était ajouté pour les types de construction, ce qui rendrait le répertoire suivant structure valide:
app/src/ main/google-services.json dogfood/google-services.json mytype1/google-services.json ...
Vérifiez le nom de votre package sur votre google-services.json il devrait être identique à votre nom de package local de votre application.
Exemple
"client_info": {
"mobilesdk_app_id": "1:6596814400689:Android:65d6f25f5006145",
"Android_client_info": {
"package_name": "com.my.app.package.name"
}
Dans ce cas, le nom de mon package local est com.my.app.package.name , donc j'ai également changé le nom de mon package dans google-services.json avec mon nom de package local
assurez-vous que le nom de votre package dans le fichier "google-services.json" est identique à celui de vos applications.
J'ai trouvé la solution:
Nous devons créer deux "applications" dans le projet firebase, puis nous pouvons télécharger le fichier json à partir de n'importe quelle application (je l'ai téléchargé à partir de l'application parfumée). Il contiendra les données pour les deux applications. Nous pouvons simplement copier le fichier JSON dans le répertoire racine de l'application.
Source: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-Android-app-builds.html
Vous devez placer google-services.json
dans app/
dir. Et pour chaque type de construction, il devrait y avoir un directeur correspondant dans le dossier app/src
.
Par exemple, si vous avez release et debug:
app/google-services.json
app/src/debug/google-services.json
Dans tous les fichiers google-services.json, vous devez spécifier le package_name
correct en fonction du type de construction.
Par exemple, dans le répertoire de débogage, il devrait ressembler à {com.myapp}.debug
Chaque fois que vous créez ou mettez à jour
package name
Assurez-vous que le nom de votre package est exactement le même [Les majuscules et les minuscules importent]
Faire ci-dessous étape.
1). Vérifier applicationId
dans le fichier gradle
de niveau d'application,
2). Vérifiez package_name
dans votre fichier google-services.json
,
3). Vérifiez package
dans votre fichier AndroidManifest
et pour obtenir une confirmation complète, indiquez le nom de répertoire de votre package de travail i.e. ("com.example.app") identique.
Aucun client correspondant trouvé pour le nom de package 'com.tf' Je suis pratiquement sûr que le "package_name" dans google-services.json ne correspond pas à votre "applicationId" dans l'application gradle.
app gradle:
defaultConfig {
applicationId "com.tf" //replace with the package_name in google-services.json =
minSdkVersion 23
targetSdkVersion 26
versionCode 7
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
google-services.json
"client_info": {
"mobilesdk_app_id": "1:23978655351:Android:2b2fece6b961cc70",
"Android_client_info": {
"package_name": "in.ac.geu.debug"
}
},
Solution : Assurez-vous simplement que package_name
et applicationId
doivent être identiques.
Ouvrez votre fichier Google-services.json et recherchez cette section dans le fichier:
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:857242555489:Android:46d8562d82407b11",
"Android_client_info": {
"package_name": "com.example.duke_davis.project"
}
}
vérifiez si le paquet est identique à votre nom de paquet. Le mien était différent, alors je l'ai changé et cela a fonctionné.
vérifiez si client_id
et package_name
dans google-services.json a une valeur correcte en fonction du nom de votre paquet.
Vous devez ajouter le fichier mentionné dans le répertoire flavors avec le nom du paquet correspondant dans les champs client_id
et package_name
.
Assurez-vous de renommer ApplicationId dans le fichier Gradle après avoir renommé votre paquet.
Je viens de réagir mais je pense que cela s'applique également à cette question. Spécifier.
Dans le fichier Android/app/build.gradle
, recherchez applicationId
(dans Android
, defaultConfig
)
et assurez-vous que cette valeur est la même cette
client[0]client_info.Android_client_info.package_name
comme valeur dans google-services.json
.
Si le nom de votre package sur le fichier Google-services.json est correct, accédez au fichier gradle.properties Puis changez votre APPLICATION_ID = "com.votrepackage.name"
Vous devez également modifier le nom du package dans google-services.json
Tout d'abord, ajoutez un suffixe au package d'application dans Gradle:
yourFlavor {
applicationIdSuffix "yourFlavor"
}
Cela fera nommer votre paquet
com.domain.yourapp.yourFlavor
Ensuite, accédez à Firebase sous votre projet actuel et ajoutez-y une autre application Android portant ce nom de package.
Remplacez ensuite le fichier google-services.json existant par le nouveau fichier que vous générez avec la nouvelle application qu'il contient.
Vous vous retrouverez alors avec quelque chose qui a plusieurs sections "client_info". Donc, vous devriez vous retrouver avec quelque chose comme ça:
"client_info": {
"mobilesdk_app_id": "YOUR APP INFO",
"Android_client_info": {
"package_name": "com.domain.yourapp"
}
}
"client_info": {
"mobilesdk_app_id": "YOUR APP INFO - will be different then other app info",
"Android_client_info": {
"package_name": "com.domain.yourapp.yourFlavor"
}
}
Android {
compileSdkVersion 27
defaultConfig {
applicationId "com.package.name"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
assurez-vous que applicationId de Gradle.app est identique à votre nom de package. mon problème était-ce et j'ai résolu de cette façon
si cela ne fonctionne pas pour l'un d'entre vous, mon problème était avec un nom de paquet qui ne commençait pas par 'com' .
j'espère que cela pourra aider
Je pense que vous avez ajouté le fichier json firebase "google-services" .json avec le nouveau fichier. Assurez-vous de créer un nouveau fichier vérifiez le lien sur la façon de créer un fichier json à partir de firebase et il devrait correspondre au nom de votre paquet
Deuxièmement, si vous modifiez le nom du paquet, utilisez l'option "Remplacer dans le chemin" lorsque vous cliquez avec le bouton droit de la souris sur les fichiers lorsque vous sélectionnez un projet dans la liste déroulante. Vous devez rechercher le nom du paquet dans tout le projet et le remplacer!
J'espère que cela t'aides !
allez dans le répertoire de votre projet et créez des dossiers sur le chemin app/src qui a nommé vos variantes de produit (telles que Alpha, Beta, Store ou le nom de votre version). puis copiez votre fichier google-services.json dans chaque dossier. n'oubliez pas de changer le champ "nom_package" dans le fichier google-services.json de chaque saveur de produit que vous avez sous-dossier.
J'ai résolu le même problème Voici une solution simple: Lorsque vous créez firebase connection, suivez les instructions suivantes:
Ajouter le nom de votre application dans firebase
Ajoutez le nom de votre paquet d'application (écrivez le même nom de paquet que vous utilisez dans l'application)
quand firebase crée google-services.json fichier seulement télécharger il et coller il dans votre dossier d'applications
Synchronisez votre projet Le problème est résolu :)
Je vous remercie
Allez dans le fichier google-services.json et dans la partie client, vérifiez le nom du package et comparez-le avec le nom du package de l'application s'il est différent, puis modifiez le nom du package du client en fonction du nom de votre package d'application.
fichier google-services.json-> "nom_package": "com.example.application.tracker"
Nom du package d'application -> package "com.example.application.tracker";
Je l'ai résolu en créant deux sources, une gratuite et une payante. Ces deux dossiers contiendront le code Java requis et les fichiers de ressources, qui seront modifiés en fonction des exigences de la variante. Par exemple, vous souhaitez supprimer le code AdMob dans Paid des fichiers Java Classes et Layout.
J'ai résolu le même problème en resynchronisant le fichier google-services.json
.
Outils> Firebase> Connexion à Firebase> Sync
Cela signifie que votre fichier google-services.json n'appartient pas à votre application (avez-vous téléchargé le fichier google-services.json pour une autre application?) ... afin de résoudre ce problème, procédez comme suit:
1: connectez-vous à Firebase et ouvrez votre projet . 2: cliquez sur l'icône Paramètres et sélectionnez Paramètres du projet . 3: dans la carte Vos applications, sélectionnez le nom du package de l'application dont vous avez besoin d'un fichier de configuration. for from from the list . 4: Cliquez sur google-services.json. Une fois le téléchargement terminé, ajoutez le nouveau fichier google-services.json au dossier racine de votre projet, en remplaçant le fichier existant ... ou supprimez simplement l'ancien fichier . Il est tout à fait normal de télécharger les services Google. Json pour votre premier projet, puis supposez ou oubliez que ce fichier google-services.json spécifique est adapté à votre projet actuel uniquement, car il en est un autre car tous les projets ont un nom de package unique.
Je reçois également ce problème lorsque je change le nom du paquet de mon application.
Dans votre projet de studio Android, recherchez le fichier "google-services.json" . Ouvrez-le . Et vérifiez si le nom du package de votre application est identique à celui écrit dans ce fichier.
Le nom de package de votre application et le nom de package écrit dans le fichier "google-services.json" doivent être identiques.
Recherchez applicationIdSuffix
dans le fichier build.gradle de votre application. Voyez si cela concatène du texte avec votre applicationId
. Si c'est le cas, retirez-le.
1.Vérifier Nom du package et ID de l'application doit être identique
2.Vérifier nom du package google-services.json qui est disponible dans le dossier de l'application
Cette erreur se produit lorsque vous avez téléchargé dans votre projet un fichier Json Google Services dont le nom du package ne correspond pas au nom du package de votre projet.
Récemment renommé le nom du paquet du projet? Il met à jour toutes les classes mais pas le fichier Gradle . Vérifiez donc si le nom de votre paquet est correct dans votre Gradle, et peut-être aussi manifeste.