Aucun client ne correspond trouvé pour le nom du paquet (Google Analytics) - multiple productFlavors & buildTypes

contexte:

J'essaie de configurer Google Analytics pour mon application. (avec 4 custom buildTypes et plus de quelques productFlavors )

cela fonctionne très bien lorsque je sélectionne le Build Variant qui a le applicationId défini à 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 applicationides différents.

j'ai suivi le devguide offical pour le mettre en place.

erreur que je reçois lorsque n'importe quelle autre variante de construction est sélectionnée dans Build Variants Tab (qui a un différent applicationId (nom du paquet) est comme suit:

erreur: L'exécution a échoué pour la tâche ": app: processAllcategoriesDebugfreeGoogleservices".

Pas de client correspondant trouvé pour le nom de package com.mon.app.package.nom.debug'

explication du Message d'erreur:

dans le nom de la tâche dans le message d'erreur au-dessus de Debugfree est ma coutume buildType et Allcategories est l'un 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 une solution.

problème:

maintenant, le google-services.json réside dans le dossier app et par conséquent je ne suis pas en mesure de les séparer pour chaque saveur de produit en les laissant tomber dans le dossier source spécifique saveur ensemble.

Questions:

  1. My custom byildType pour le débogage des suffixes .debug à la applicationId (nom du paquet). Y a-t-il un moyen que je puisse le faire fonctionner avec le google-services.json qui a ma version applicationId (i.e. sans le suffixe .debug )
  2. est-il possible d'avoir plusieurs saveurs de produits configurés dans le même fichier google-services.json sans utiliser de fichiers et de tâches séparés pour copier le fichier requis dans le dossier app . Je sais que cela peut être fait en utilisant le task , comme mentionné dans ce post . Est-il un moyen plus simple d'en avoir un fichier ou choisir le bon fichier en fonction de la configuration de gradle?
  3. je vois le champ package_name dans google-services.json a le nom du paquet com.my.app.package.name . Puis-je ajouter plusieurs noms de paquets manuellement au travail pour construire des variantes? Si oui, comment le faire? Je n'ai trouvé aucune Instruction dans les documentations.
190
demandé sur Community 2016-01-25 13:37:23

26 réponses

Trouvé ceci:

les services google.le fichier json est généralement placé dans l'application/ répertoire, mais à partir de la version 2.0.0-alpha3 de la prise en charge du plugin était ajouté pour les types de construction , ce qui ferait le répertoire suivant structure valide:

app/src/
    main/google-services.json
    dogfood/google-services.json
    mytype1/google-services.json
    ...

Source

Source 2

151
répondu AndroidMechanic - Viral Patel 2016-01-25 12:09:25

vérifiez le nom de votre paquet sur votre google-services.json il doit être identique au nom de votre paquet 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, mon nom de paquet local est com.mon Dieu.app.paquet.nom donc j'ai aussi changé le nom de mon paquet dans google-services.json avec mon nom de paquet local

147
répondu Muhammed Fasil 2018-09-13 07:07:15

assurez-vous que votre nom de paquet dans "google-services.le fichier json " est le même que le nom du paquet de votre application.

52
répondu cahit beyaz 2017-01-21 13:40:28

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 (j'ai téléchargé à partir de l'application flavoured). Il contient les données pour les 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

37
répondu Usman 2016-12-27 10:58:45

chaque fois que vous créez ou mettez à jour package name assurez-vous que votre nom de paquet est exactement le même [majuscules et minuscules] 1519130920"

Faire en dessous de l'étape.

1). Vérifier applicationId in-App "au niveau de 151920920" fichier", 1519130920"

2). Check package_name dans votre fichier google-services.json ,

3). Vérifier package dans votre AndroidManifest fichier

et pour une confirmation complète, faites votre nom de répertoire de paquet i.e. ("com.exemple.application") est aussi le même.

21
répondu Ravi Vaniya 2018-06-18 09:40:18

Vous avez besoin de placer des google-services.json en app/ dir. Et pour chaque type de construction, il devrait y avoir un directeur app/src le dossier.

par exemple, si vous avez release et debug:

app/google-services.json
app/src/debug/google-services.json

dans tous les services google.les fichiers json vous devez spécifier correct package_name selon le type de construction.

par exemple, à l'intérieur de debug dir il devrait être comme {com.myapp}.debug

19
répondu Bogdan Ustyak 2016-11-10 04:10:22

ouvrez vos services Google.JSON file et cherchez 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 au nom de votre paquet. Le mien était différent, donc je l'ai changé et ça a marché.

13
répondu DAVIS BENNY 15MIS0426 2017-03-03 04:09:49

vérifiez si client_id et package_name dans les google-services.json a une valeur correcte selon le nom de votre paquet.

vous devez ajouter le fichier mentionné dans le répertoire flavors avec le nom de paquet correspondant dans le champ client_id et package_name .

10
répondu SHi ON 2016-05-30 17:21:55

je viens de react native mais je pense que cela s'applique aussi à cette question. Spécifier.

dans le fichier android/app/build.gradle rechercher applicationId (dans android , defaultConfig )

et s'assurer que cette valeur est la même cette

client[0]client_info.android_client_info.package_name

comme valeur à l'intérieur de google-services.json .

10
répondu ThomasReggi 2017-08-01 18:16:07

assurez-vous de renommer ApplicationId dans le fichier gradle après renommer votre paquet

9
répondu Arsalan Shah 2016-12-21 05:02:54

si votre nom de paquet apparaît sur Google-services.fichier json est ok, Aller à gradle.fichier de propriétés. Puis changez votre APPLICATION_ID= " com.ton sac.nom "

6
répondu Dulal Kisku 2017-03-12 04:09:15

vous devez également changer le nom du paquet dans google-services.json

6
répondu S H Mehdi 2018-05-01 08:17:29

si rien de tout ça n'a fonctionné pour l'un de vous, mon problème était avec un nom de paquet qui n'a pas commencé par un "com". changé, maintenant il fonctionne.

l'espoir qui aide

4
répondu eiran 2017-04-04 15:50:26

je pense que vous avez ajouté le fichier firebase json"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 le fichier json à partir de la base de données et il devrait correspondre à votre nom de paquet

la deuxième chose est que si vous changez le nom du paquet, utilisez l'option" Remplacer dans le chemin " lorsque vous cliquez avec le bouton droit sous Fichiers lorsque vous sélectionnez projet à partir de la liste déroulante. Vous devez rechercher le nom du paquet dans l'ensemble projet et de le remplacer !

Espérons que cette aide !

4
répondu Ashok Kumar K R 2018-03-17 12:07:37

allez dans votre répertoire de projets et créez des dossiers sur app/src path qui ont nommé les saveurs de votre produit (comme Alpha, Beta, Store ou quel que soit le nom de votre saveur). puis copiez vos services google.fichier json à chaque dossier. n'oubliez pas de changer le champ "package_name" sur les services google de votre saveur de chaque produit.le dossier json que vous avez sous-plié.

3
répondu Osman Yalın 2017-11-13 14:44:42
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 Gradle.l'applicationId d'app est le même que le nom de votre paquet. mon problème était celui-ci et je résolu de cette façon

3
répondu Bayar Şahintekin 2018-07-17 09:12:13

tout d'abord, ajouter un suffixe au dossier de demande dans Gradle:

yourFlavor {
   applicationIdSuffix "yourFlavor"
}

cela va provoquer votre paquet à être nommé

com.domain.yourapp.yourFlavor

puis allez à Firebase dans le cadre de votre projet actuel et ajoutez une autre application android avec ce nom de paquet.

remplace alors les services existants de google.fichier json avec la nouvelle que vous générez avec la nouvelle application.

alors vous finirez avec quelque chose qui a plusieurs sections "client_info". Vous devriez donc vous retrouver avec quelque chose comme ceci:

"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"
    }
  }
3
répondu Droid Chris 2018-07-17 20:51:04

Je l'ai résolu en faisant deux jeux de sources, un gratuit et un payé. Ces deux dossiers contiennent le code java requis et les fichiers de ressources, qui seront modifiés selon les exigences de la saveur particulière. Par exemple, vous souhaitez supprimer le code AdMob dans le payed à la fois des Classes Java et des fichiers Layout.

2
répondu Abhiroj Panwar 2016-11-13 10:48:50

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

Outils > Firebase > se Connecter à Firebase " > "Sync

2
répondu Nabin Bhandari 2017-10-09 11:42:17

j'ai résolu le même problème voici la solution la plus simple: lorsque vous créez firebase connexion suivre ces lignes directrices:

  • ajouter le nom de votre application dans la base de données

  • Ajouter votre demande d'emballage nom (écrire même emballage nom ,vous êtes à l'aide de l'app)

  • lorsque firebase faire google-services.JSON fichier juste télécharger et coller dans votre dossier app

  • Synchroniser votre projet Problème est résolu :)

    Merci

2
répondu Chaudhary Nouman 2017-12-01 12:01:44

allez à google-services.JSON file et dans la partie client, vérifiez le nom du paquet et comparez-le avec le nom du paquet App s'ils sont différents, puis changez le nom du paquet client en fonction du nom de votre paquet app.cela a fonctionné pour moi. bonne chance..

google-services.fichier json-> "nom_du_package": "com.exemple.application.tracker "

App nom du package->package "com.exemple.application.tracker";

2
répondu Shah Rukh 2018-03-17 08:33:47

il s'agit de vos services google.le fichier json n'appartient pas non plus à votre application(Avez-vous Téléchargé les services google.json pour une autre application?)...alors pour résoudre ceci, faites ce qui 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 votre carte apps, sélectionnez le nom de paquet de l'application pour laquelle vous avez besoin d'un fichier de configuration à partir de la liste. 4: Cliquez sur google-services.json. Après l' télécharger complète, ajouter les nouveaux services google.json vers le dossier racine de votre projet,en remplaçant le dossier existant..ou tout simplement supprimer l'ancien. Il est très normal de télécharger les services google.json pour votre premier projet et ensuite supposer ou oublier que ce google-services spécifiques.json est taillé sur mesure pour votre projet actuel uniquement, car aucun autre parce que tous les projets ont un nom de paquet unique.

1
répondu RileyManda 2018-01-24 20:16:59

j'ai aussi ce problème lorsque je change le nom du paquet de ma demande.

dans votre projet android studio trouver" google-services.json" fichier. De l'ouvrir. et vérifiez si le nom du paquet de votre demande est le même que celui écrit dans ce fichier.

le nom du paquet de votre application et le nom du paquet écrit dans" google-services.le fichier json doit être le même.

1
répondu mehmoodnisar125 2018-06-13 04:37:36

Pas de client correspondant trouvé pour le nom de package com.tf' Je suis assez sûr que Le "package_name" dans google-services.json ne correspond pas avec votre" applicationId " dans app gradle.

app gradle:

defaultConfig {
        applicationId "com.tf"
        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 que les package_name et applicatoinId doivent être identiques.

0
répondu Kailash Karki 2018-09-25 14:25:59

tout simplement. Inscrivez-vous à Android Studio, fermez-le complètement. Rouvrir Android studio et puis de nouveau S'inscrire à Android Studio.

ensuite, essayez de vous connecter à firebase à partir de L'IDE Studio Android. Cette procédure a fonctionné pour moi.

-1
répondu Prakash P 2018-05-16 12:04:34

il est simple de résoudre cela: assurez-vous juste du nom du paquet dans votre app/build.gradle file est le même nom de paquet que ceux de votre fichier App Manifest. et assurez-vous que le nom du paquet est correct. Cela devrait résoudre ce

-1
répondu James Idowu 2018-07-16 20:27:08