Kontext:
Ich versuche, Google Analytics für meine App einzurichten. (mit 4 benutzerdefinierten buildTypes
und mehr als ein paar productFlavors
)
Es funktioniert gut, wenn ich das auswähle Build Variant
, auf das applicationId
gesetzt ist com.my.app.package.name
(der Paketname, der beim Generieren des verwendet wird google-services.json
). Aber meine anderen Geschmacksrichtungen haben andere Anwendungs-IDs.
Ich folgte dem offiziellen Devguide , um es einzurichten.
Fehler, den ich bekomme, wenn eine andere Build-Variante ausgewählt wird Build Variants Tab
(die einen anderen applicationId
(Paketnamen) hat, ist wie folgt:
Fehler: Ausführung für Aufgabe ': app: processAllcategoriesDebugfreeGoogleServices' fehlgeschlagen.
Für den Paketnamen 'com.my.app.package.name.debug' wurde kein passender Client gefunden.
Erläuterung der Fehlermeldung:
Im Aufgabennamen in der obigen Fehlermeldung Debugfree
ist meine Gewohnheit buildType
und Allcategories
eine meiner productFlavors
.
Ich verstehe den Fehler und weiß, dass der Paketname sich von dem unterscheidet, den ich beim Generieren des JSON verwendet habe, aber genau das versuche ich zu umgehen.
Problem:
Jetzt google-services.json
befindet sich der app
Ordner im Ordner, und daher kann ich sie nicht für jeden Produktgeschmack trennen, indem ich sie in den geschmacksspezifischen Quellensatzordner lege.
Fragen:
- Meine Gewohnheit
byildType
zum Debuggen von Suffixen.debug
anapplicationId
(Paketname). Gibt es eine Möglichkeit, wie ich es mit dem machen kann,google-services.json
das meine Version hatapplicationId
(dh ohne das Suffix.debug
) ? - Gibt es eine Möglichkeit, mehrere Produktvarianten in derselben
google-services.json
Datei zu konfigurieren, ohne separate Dateien und Aufgaben zum Kopieren der erforderlichen Datei in einenapp
Ordner zu verwenden ? Ich weiß, dass diestask
wie in diesem Beitrag erwähnt möglich ist . Gibt es eine einfachere Möglichkeit, nur eine Datei zu haben oder die richtige Datei basierend auf der Gradle-Konfiguration auszuwählen? - Ich sehe, dass das
package_name
Feld ingoogle-services.json
den Paketnamen hatcom.my.app.package.name
. Kann ich mehrere Paketnamen manuell hinzufügen, um für alle Build-Varianten zu arbeiten? Wenn ja, wie geht das? In den Dokumentationen konnten keine Anweisungen gefunden werden.
quelle
Antworten:
Überprüfen Sie Ihren Paketnamen auf Ihrer google-services.json. Er sollte mit Ihrem lokalen Paketnamen Ihrer App übereinstimmen
Beispiel
In diesem Fall lautet mein lokaler Paketname com.my.app.package.name, daher habe ich auch meinen Paketnamen in google-services.json mit meinem lokalen Paketnamen geändert
quelle
Ich habe es gefunden:
Quelle
Quelle 2
quelle
Für den Paketnamen 'com.tf' wurde kein passender Client gefunden. Ich bin mir ziemlich sicher, dass der "Paketname" in google-services.json nicht mit Ihrer "applicationId" in app gradle übereinstimmt.
App Gradle:
google-services.json
Lösung : Stellen Sie einfach sicher, dass
package_name
undapplicationId
identisch sein müssen.quelle
application id
In-App-Gradle hat es geschafftStellen Sie sicher, dass Ihr Paketname in der Datei "google-services.json" mit dem Paketnamen Ihrer Apps übereinstimmt.
quelle
Ich habe die Lösung gefunden:
Wir müssen zwei "Apps" im Firebase-Projekt erstellen und können dann die JSON-Datei von einer beliebigen App herunterladen (ich habe sie von der aromatisierten App heruntergeladen). Es enthält die Daten für beide Apps. Wir können die JSON-Datei einfach in das Stammverzeichnis der App kopieren.
Quelle: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html
quelle
Sie müssen
google-services.json
inapp/
dir platzieren. Und für jeden Build-Typ sollte sich ein entsprechender Director imapp/src
Ordner befinden.Zum Beispiel, wenn Sie Release und Debug haben:
In allen google-services.json-Dateien sollten Sie die korrekte Angabe
package_name
entsprechend dem Build-Typ angeben .Zum Beispiel sollte es im Debug-Verzeichnis so sein
{com.myapp}.debug
quelle
"client"
Array von ' duplizieren (ein Komma zwischen die Elemente einfügen) und nur den"package_name"
Wert des neuen Elements ändern , um das.debug
Suffix aufzunehmen. Dann wieder aufbauen. Es hat bei mir auf AS 2.3.3 funktioniert.Dieser Fehler tritt auf, wenn in Ihrem Projekt eine Google Services Json-Datei heruntergeladen wurde, deren Paketname nicht mit dem Paketnamen Ihres Projekts übereinstimmt .
Kürzlich den Paketnamen des Projekts umbenannt?
Es werden alle Klassen aktualisiert, jedoch nicht die Gradle-Datei . Überprüfen Sie also, ob Ihr Paketname in Ihrem Gradle korrekt ist, und möglicherweise auch Manifest.
quelle
Führen Sie den folgenden Schritt aus.
1). Check
applicationId
in App Levelgradle
Datei,2). Checken Sie
package_name
Ihregoogle-services.json
Datei ein,3). Checken Sie
package
IhreAndroidManifest
Datei einund zur vollständigen Bestätigung stellen Sie sicher, dass der Name Ihres Arbeitspaketverzeichnisses, dh ("com.example.app"), ebenfalls identisch ist.
quelle
package
Manifest (und alle Dateien in allen Paketen)applicationId
nicht ändern , da sich die App-ID ändert.Fügen Sie dem Anwendungspaket in Gradle zunächst ein Suffix hinzu:
Dadurch wird Ihr Paket benannt
Gehen Sie dann unter Ihrem aktuellen Projekt zu Firebase und fügen Sie eine weitere Android-App mit diesem Paketnamen hinzu.
Ersetzen Sie dann die vorhandene Datei google-services.json durch die neue, die Sie mit der neuen App generieren.
Dann erhalten Sie etwas, das mehrere Abschnitte "client_info" enthält. Sie sollten also so etwas haben:
quelle
Überprüfen Sie, ob
client_id
undpackage_name
in google-services.json ein korrekter Wert entsprechend Ihrem Paketnamen vorhanden ist.Sie sollten die erwähnte Datei mit dem entsprechenden Paketnamen im Feld
client_id
und in das Flavours-Verzeichnis einfügenpackage_name
.quelle
1.Prüfen Paketname und Anwendungs - ID sollte gleich sein
2.Überprüfen google-services.json, der im App-Ordner verfügbar ist
quelle
Stellen Sie sicher, dass Sie ApplicationId in der Gradle-Datei umbenennen, nachdem Sie Ihr Paket umbenannt haben
quelle
Öffnen Sie Ihre Google-services.json-Datei und suchen Sie in der Datei nach diesem Abschnitt:
Überprüfen Sie, ob das Paket mit Ihrem Paketnamen übereinstimmt. Meins war anders, also habe ich es geändert und es hat funktioniert.
quelle
Ich komme von React Native, aber ich denke, dass dies auch für diese Frage gilt. Konkretisieren.
android/app/build.gradle
Suchen Sie in der Datei nachapplicationId
(innerhalbandroid
,defaultConfig
)und stellen Sie sicher, dass dieser Wert der gleiche ist
client[0]client_info.android_client_info.package_name
als der Wert innerhalb
google-services.json
.quelle
Sie müssen auch den Paketnamen in ändern google-services.json
quelle
Wenn Ihr Paketname in der Datei Google-services.json in Ordnung ist, wechseln Sie zur Datei gradle.properties. Ändern Sie dann Ihre APPLICATION_ID = "com.yourpackage.name"
quelle
Ich denke, Sie haben die Firebase-JSON-Datei "google-services" .json mit der neuen Datei hinzugefügt. Stellen Sie sicher, dass Sie eine neue Datei erstellen. Überprüfen Sie den Link zum Erstellen einer JSON-Datei aus Firebase und sie sollte mit Ihrem Paketnamen übereinstimmen
Zweitens: Wenn Sie den Paketnamen ändern, verwenden Sie die Option "Im Pfad ersetzen", wenn Sie mit der rechten Maustaste unter Dateien klicken, wenn Sie das Projekt aus der Dropdown-Liste auswählen. Sie müssen im gesamten Projekt nach dem Paketnamen suchen und diesen ersetzen!
Hoffe das hilft !
quelle
Wenn nichts davon für einen von euch funktioniert hat, war mein Problem mit einem Paketnamen, der nicht mit einem 'com' begann. hat es geändert, jetzt funktioniert es.
Ich hoffe, das hilft
quelle
Stellen Sie sicher, dass die Anwendungs-ID von Gradle.app mit Ihrem Paketnamen übereinstimmt. Mein Problem war dies und ich löste es auf diese Weise
quelle
Gehen Sie in Ihr Projektverzeichnis und erstellen Sie Ordner im Pfad app / src, in denen Ihre Produktvarianten benannt sind (z. B. Alpha, Beta, Store oder wie auch immer Ihre Geschmacksrichtung lautet). Kopieren Sie dann Ihre Datei google-services.json in jeden Ordner. Vergessen Sie nicht, das Feld "Paketname" in der von Ihnen untergeordneten Datei "google-services.json" der einzelnen Produktvarianten zu ändern.
quelle
Gehen Sie zur Datei google-services.json und überprüfen Sie im Client-Teil den Paketnamen und vergleichen Sie ihn mit dem Namen des App-Pakets. Wenn sie unterschiedlich sind, ändern Sie den Namen des Client-Pakets entsprechend dem Namen Ihres App-Pakets. Es hat bei mir funktioniert. Viel Glück.
google-services.json file-> "package_name": "com.example.application.tracker"
App-Paketname-> Paket "com.example.application.tracker";
quelle
Ich habe es gelöst, indem ich zwei Quellensätze erstellt habe, einen kostenlosen und einen kostenpflichtigen. Beide Ordner enthalten den erforderlichen Java-Code und die erforderlichen Ressourcendateien, die an die Anforderungen der jeweiligen Version angepasst werden. Beispielsweise möchten Sie AdMob-Code im bezahlten Code sowohl aus Java-Klassen als auch aus Layoutdateien entfernen.
quelle
Ich habe das gleiche Problem gelöst, indem ich die Datei erneut synchronisiert habe
google-services.json
.quelle
google-services.json
.Ich habe das gleiche Problem gelöst, hier ist eine einfache Lösung: Wenn Sie eine Firebase- Verbindung erstellen , befolgen Sie diese Richtlinien:
Fügen Sie Ihren Anwendungsnamen in firebase hinzu
Fügen Sie Ihren Anwendungspaketnamen hinzu (schreiben Sie denselben Paketnamen, den Sie in der App verwenden).
Wenn Firebase die Datei google-services.json erstellt, laden Sie sie einfach herunter und fügen Sie sie in Ihren App-Ordner ein
Synchronisiere dein Projekt Problem ist gelöst :)
Vielen Dank
quelle
Ich bekomme dieses Problem auch, wenn ich den Paketnamen meiner Anwendung ändere.
Suchen Sie in Ihrem Android Studio-Projekt die Datei "google-services.json". Öffne es. und überprüfen Sie, ob der Paketname Ihrer Anwendung mit dem in dieser Datei angegebenen übereinstimmt.
Der Paketname Ihrer Anwendung und der Paketname in der Datei "google-services.json" müssen identisch sein.
quelle
Dies bedeutet, dass Ihre Datei google-services.json entweder nicht zu Ihrer Anwendung gehört (Haben Sie google-services.json für eine andere App heruntergeladen?). Um dies zu lösen, gehen Sie wie folgt vor:
1: Melden Sie sich bei Firebase an und öffnen Sie Ihr Projekt. 2: Klicken Sie auf das Symbol Einstellungen und wählen Sie Projekteinstellungen. 3: Wählen Sie auf der Karte Ihre Apps den Paketnamen der App aus, für die Sie eine Konfigurationsdatei benötigen, aus der Liste. 4: Klicken Sie auf google-services.json. Fügen Sie nach Abschluss des Downloads die neue Datei google-services.json zu Ihrem Projektstammordner hinzu und ersetzen Sie die vorhandene. Oder löschen Sie einfach die alte. Es ist ganz normal, die Datei google-services.json für Ihr erstes Projekt herunterzuladen und dann anzunehmen oder zu vergessen, dass diese spezielle Datei google-services.json nur für Ihr aktuelles Projekt zugeschnitten ist, da keine andere, da alle Projekte einen eindeutigen Paketnamen haben.
quelle
Prüfen Sie, ob
applicationIdSuffix
in Ihrer App build.gradle Datei. Überprüfen Sie, ob Text mit Ihrem Text verknüpft istapplicationId
. Wenn ja, entfernen Sie es.quelle
Sie können dies tun, um dieses Problem zu lösen.
quelle
Nur einfach. Melden Sie sich von Android Studio ab und schließen Sie es vollständig. Öffnen Sie Android Studio erneut und melden Sie sich erneut bei Android Studio an.
Versuchen Sie dann, über die Android Studio-IDE eine Verbindung zu Firebase herzustellen. Dieses Verfahren hat bei mir funktioniert.
quelle
Es ist einfach, dies zu lösen: Stellen Sie einfach sicher, dass der Paketname in Ihrer app / build.gradle-Datei mit dem Paketnamen in Ihrer App Manifest-Datei übereinstimmt. und stellen Sie sicher, dass der Paketname korrekt ist. Das sollte das lösen
quelle