android ': - Aucun client correspondant trouvé pour le nom du package(Google Analytics)-plusieurs ProductFlavors & buildTypes





execution found (17)


Je l'ai résolu en créant deux sources, une gratuite et une payée. Ces deux dossiers contiendront le code java et les fichiers de ressources requis, qui seront édités selon les exigences de la saveur particulière. Par exemple, vous souhaitez supprimer le code AdMob dans le paiement à la fois des classes Java et des fichiers de mise en forme.

Le contexte:

J'essaie de configurer Google Analytics pour mon application. (ayant 4 buildTypes personnalisés et plus de quelques productFlavors )

Cela fonctionne très bien lorsque je sélectionne la Build Variant dont l' com.my.app.package.name applicationId défini sur com.my.app.package.name (nom du package utilisé lors de la génération de google-services.json ). Mais, mes autres goûts ont des applicationsIds différentes.

J'ai suivi le devguide officiel pour le mettre en place.

Erreur que je reçois quand une autre variante de construction est sélectionnée dans l' Build Variants Tab (qui a un différent applicationId (nom du paquet) 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 mon buildType personnalisé 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 fichier json, mais c'est ce que j'essaie de trouver.

Problème:

Maintenant, google-services.json réside dans le dossier de l' app et je ne peux donc pas les séparer pour chaque saveur de produit en les déposant dans le dossier du jeu de sources spécifique à la saveur.

Des questions:

  1. Mon byildType personnalisé pour le débogage des suffixes .debug à l' applicationId (nom du paquet). Y at-il un moyen de le faire fonctionner avec le google-services.json qui a ma version applicationId (c'est-à-dire sans le suffixe .debug )
  2. Est-il possible de configurer plusieurs versions 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 de l' app . Je sais que cela peut être fait en utilisant la task comme mentionné dans ce post . Existe-t-il un moyen plus simple d'avoir un seul fichier ou de choisir le bon fichier en fonction de la configuration de gradation?
  3. Je vois le champ package_name dans google-services.json a le nom de package com.my.app.package.name . Puis-je ajouter plusieurs noms de paquets manuellement pour toutes les variantes de construction? Si oui, comment faire cela? Impossible de trouver des instructions dans les documentations.



J'ai résolu le même problème ici est une solution simple: lorsque vous créez une connexion firebase , suivez ces instructions:

  • Ajoutez le nom de votre application dans Firebase

  • Ajoutez le nom de pakage de votre application (écrivez le même nom de pakage, que vous utilisez dans l'application)

  • quand firebase fabrique le fichier google-services.json il suffit de le télécharger et de le coller dans le dossier de votre application

  • Synchronisez votre projet Le problème est résolu :)

    Je vous remercie




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

Outils> Firebase> Connexion à Firebase> Synchronisation




Vérifiez si client_id et package_name dans google-services.json ont une valeur correcte en fonction de votre nom de package.

Vous devez ajouter le fichier mentionné dans le répertoire client_id avec le nom de package correspondant dans les client_id et package_name .




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




si rien de tout cela ne fonctionnait pour l'un de vous, mon problème était avec un nom de paquet qui ne commençait pas par un 'com'. changé, maintenant ça marche.

J'espère que cela pourra aider




J'ai trouvé la solution:

Nous devons créer deux "apps" dans le projet firebase, et ensuite nous pouvons télécharger le fichier json à partir de n'importe quelle application (j'ai téléchargé depuis l'application aromatisé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




Juste simple. Déconnectez-vous d'Android Studio, fermez-le complètement. Rouvrez le studio Android, puis reconnectez-vous à Android Studio.

Ensuite, essayez de vous connecter à Firebase à partir de l'IDE studio Android. Cette procédure a fonctionné pour moi.




Si le nom de votre package sur le fichier Google-services.json est correct, accédez au fichier gradle.properties. Ensuite, changez votre APPLICATION_ID = "com.yourpackage.name"




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 un fichier json à partir de firebase et il devrait correspondre avec votre nom de paquet

La deuxième chose est que si vous changez le nom du paquet, utilisez l'option "replace in path" lorsque vous faites un clic droit sur les fichiers lorsque vous sélectionnez un projet dans le menu déroulant. Vous devez rechercher le nom du paquet dans l'ensemble du projet et le remplacer!

J'espère que cela t'aides !




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




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 le même que le nom de votre paquet. Le mien était différent, donc je l'ai changé et ça a marché.




Allez dans le répertoire de votre projet et créez des dossiers sur le chemin app / src qui ont nommé vos goûts (comme Alpha, Beta, Store ou quel que soit le nom de votre saveur). puis copiez votre fichier google-services.json dans chaque dossier. N'oubliez pas de changer le champ "nom_package" du fichier google-services.json de votre produit, que vous avez sous-utilisé.




Cela signifie que votre fichier google-services.json n'appartient pas à votre application (avez-vous téléchargé google-services.json pour une autre application?) ... pour 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 dans la liste. 4: Cliquez sur google-services.json. Une fois le téléchargement terminé, ajoutez le nouveau fichier google-services.json à votre dossier racine du projet, en remplaçant le fichier existant ... ou simplement supprimez le fichier existant. Il est très normal de télécharger google-services.json pour votre premier projet, puis d'assumer ou d'oublier que ce google-services.json spécifique est adapté à votre projet actuel seul, car pas tous les autres parce que tous les projets ont un nom de paquet unique.




Vérifiez le nom de votre paquet sur google-services.json

Exemple

"client_info": {
    "mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
    "android_client_info": {
      "package_name": "com.my.app.package.name"
    }



Allez dans le fichier google-services.json et dans la partie client, vérifiez le nom du paquet et comparez-le avec le nom du paquet d'application s'ils sont différents, puis changez le nom du paquet client en fonction du nom de votre paquet d'application.

Fichier google-services.json-> "nom_package": "com.example.application.tracker"

App package name-> package "com.example.application.tracker";




J'utilise actuellement deux ID de projet GCM dans le même package d'application. Je mets le google-service.json de mon premier projet GCM mais je passe du premier au second en ne changeant que le SENDER_ID:

    String token = instanceID.getToken(SENDER_ID,GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

(À ce stade, je pense que le google-services.json n'est pas obligatoire)





android android-studio gradle google-analytics android-productflavors