web-dev-qa-db-fra.com

Aucun client correspondant trouvé pour le nom du package (Google Analytics) - multiples productFlavors & buildTypes

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:

  1. Ma coutume 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)
  2. Existe-t-il un moyen de configurer plusieurs types de produit dans le même fichier 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?
  3. Je vois que le champ 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
    ...

La source

Source 2

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

207
Muhammed Fasil

assurez-vous que le nom de votre package dans le fichier "google-services.json" est identique à celui de vos applications.

57
cahit beyaz

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

44
Usman

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

25
Bogdan Ustyak

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.

24
Ravi Vaniya

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.

23
Kailash Karki

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é.

13

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

12
SHi ON

Assurez-vous de renommer ApplicationId dans le fichier Gradle après avoir renommé votre paquet.

11
Arsalan Shah

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.

10
ThomasReggi

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"

7
Dulal Kisku

Vous devez également modifier le nom du package dans google-services.json

6
S H Mehdi

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"
    }
  }
5
Droid Chris
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

4
Bayar Şahintekin

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

4
eiran

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 !

4
Ashok Kumar K R

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.

3
Osman Yalın

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 

2
Chaudhary Nouman

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";

2
Shah Rukh

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.

2
Abhiroj Panwar

J'ai résolu le même problème en resynchronisant le fichier google-services.json.

Outils> Firebase> Connexion à Firebase> Sync

2
Nabin Bhandari

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.

1
RileyManda

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.

1
mehmoodnisar125

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.

0
Arsalan Shah

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

0
John Ruban Singh

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.

0
devDeejay