Ich habe GCM (Google Cloud Messaging) in meiner App implementiert. Die Google Play Services-Bibliothek hat values.xml
automatisch generiert, in der mein senderId
ist:
Das Problem ist, dass ich ein anderes Gebietsschema habe und Lint während der App-Freigabe mir einen Fehler gibt:
Error:(3) Error: "gcm_defaultSenderId" is not translated in "fr" (French) [MissingTranslation]
Weil es automatisch generiert wird, kann ich translable = false
nicht setzen. Wie sollte ich das beheben?
Ich nehme an, dass Sie Android Studio verwenden.
Hatte genau das gleiche Problem mit Android Studio 1.4.
Als erstes habe ich versucht, die Einstellung "Datei - Einstellungen - Editor - Inspektionen - Android Lint - Unvollständige Übersetzung" auf etwas anderes als "Fehler" zu setzen.
Das hat nicht geholfen! Ich konnte immer noch keine Release-APK erstellen.
Ich habe das XML wie folgt "übersetzt":
Erstellen Sie im Ordner ... / android / res einen neuen Sprachordner values-de (ersetzen Sie de durch Ihren Sprachcode).
Erstellen Sie im Sprachenordner eine Datei namens google-services.xml.
Fügen Sie in die XML-Datei ein:
%Vor%Danach konnte ich das Release erstellen.
Fügen Sie eine lint.xml
-Datei in Ihrem Projektanwendungsstamm (unter app /) hinzu und fügen Sie die fehlenden Übersetzungen hinzu, die dort ignoriert werden sollen:
Diese werden jetzt von lint ignoriert - Sie können konfigurieren, welche Eigenschaften ignoriert werden sollen, und Sie müssen nicht auf Updates vom google-services Team für Eigenschaften warten, an die sie nicht gedacht haben.
Lint-in wird weiterhin alle anderen Fehler erfassen, sodass Sie die anderen Funktionen weiterhin genießen können.
Seit dem letzten Update von Android Studio (1.5) hatte ich dieses Problem auch. Ich habe es gelöst, indem ich die Google Services-Abhängigkeiten zur neuesten Version .
Nach diesem Link , tatsächlich,
Dieses Problem sollte mit der Abhängigkeit von Google Play Services und 1.5.0-beta2 behoben werden.
Hoffe, das hilft! :)
BEARBEITEN Integration: Während die Zeichenfolge gcm_defaultSenderId
jetzt korrekt generiert wird (mit translatable="false"
-Attribut), sind z. B. google_app_id
und ga_trackingID
Zeichenfolgen nicht.
Für diejenigen, die immer noch Probleme haben, bin ich zu dem Schluss gekommen, dass wir auf Google-Leute warten müssen, um dieses Problem zu beheben und den Fehler in der Zwischenzeit zu ignorieren, indem wir der App-Ebene build.gradle
file
Sie werden wahrscheinlich ein weiteres bisschen automatisch erzeugten Code wie folgt haben:
%Vor%Erhalten Sie eine gültige Absender-ID aus der Google Cloud-Konsole, dann können Sie die R.string.gcm_defaultSenderId aus dem obigen Code und auch die gcm_defaultSenderId aus der Ressourcendatei entfernen.
Wenn Sie auf eine neuere Version von:
upgraden möchten / müssenSie müssen wiselly Versionen all dieser Teile zusammen wählen. Da diese alle zusammen kompatibel sein müssen. Leider gibt es keine Kompatibilitätstabelle (die einzige, die ich gefunden habe, ist mehr ein Jahr alt, also verlinke ich es hier nicht. Wenn jemand einen Link kennt).
Also, Lösung ist zu untersuchen, welche Verstion welcher Teil alles andere blockiert. Was ein Alptraum sein könnte, so ist es eine gute Idee, zu der letzten bekannten funktionalen Konfiguration zurückzukehren. Aber früher oder später werden wir gezwungen sein, ein Upgrade durchzuführen.
Ich habe die Startseite jedes Teils überprüft, um Versionsinformationen zu finden, aber letztendlich löse ich es immer noch mit der Test-und-Versuch-Methode.
Hier ist, was für mich funktional ist:
Tags und Links android google-cloud-messaging lint