Hier sind meine Werte \ strings.xml (die Standarddatei) und alles ist selbsterklärend:
Meine Fragen):
- Wie kann es "nicht im Standardgebietsschema gefunden" werden, wenn ich das Standardgebietsschema bearbeite (values \ strings.xml)?
- Wie kann es ein Flusenübersetzungsfehler sein, wenn ich einstelle
translatable="false"
? In den Ordnern values-pl \ strings.xml (und values-ru, values-iw) sind die Zeichenfolgen nicht einmal vorhanden? es sollte sowieso nicht. - Ich kann nicht verstehen, warum ich den Fehler für die russische Zeichenfolge nicht bekomme.
(Ich würde hier die Werte-ru \ string.xml oder values-pl \ string.xml anzeigen, aber es gibt dort nichts Interessantes, da die Zeichenfolgen sowieso fehlen ...)
Antworten:
das ist mir auch passiert
Ich mache 2 Dinge:
quelle
Invalidate Caches / Restart
. Um nicht in den Kommentaren zu suchen, wie ich es zum Beispiel getan habe.Der Wiederaufbau kann lange dauern. YMMV, aber ...
Entfernen Sie einfach die fehlerhafte Linie und fügen Sie sie erneut hinzu.
Hat für mich gearbeitet. Sehr schnell.
quelle
In meinem Fall hat mir das geholfen:
Wenn es bei Ihnen nicht funktioniert, fügen Sie der
strings.xml(v21)
Datei dieselben Zeichenfolgen hinzu .quelle
Drücken Sie Invalidate Caches / Restart ... Android Studio neu zu starten. Es hat bei mir funktioniert. Tatsächlich geschah dies, als ich Dateien von meinem anderen Computer kopiert und über den Datei-Explorer eingefügt hatte.
quelle
Ich hatte die gleiche Fehlermeldung, nur mit dem seltsamen Problem, dass es in das Standardgebietsschema selbst und alle Übersetzungen geworfen wurde. Es stellt sich heraus, dass Sie in Ihrem Namen keine Punkte verwenden sollten (z. B. name = "bla.blub"), da dieser intern in "bla_blub" konvertiert wird und dann nicht mit "bla.blub" übereinstimmen kann, daher der Fehler. Ich musste nur die Punkte im Standardgebietsschema in Unterstreichungen ändern, und dann waren auch alle anderen Fehler in anderen Übersetzungen (einschließlich Punkte im Namen) verschwunden.
Beachten Sie jedoch, dass andere Build-Tools weiterhin Probleme verursachen können. Ersetzen Sie stattdessen alle Punkte durch Unterstreichungen!
quelle
Das Beenden von Android Studio und der Neustart haben es für mich behoben.
quelle
Ich habe ein Tool zum Verwalten des Übersetzungsstatus von Android-Apps erstellt. Es zeigt Ihnen nicht nur an, welche Zeichenfolgen in den anderen Sprachen fehlen, sondern kann auch die verbleibenden Zeichenfolgen melden und bereinigen, die Sie möglicherweise in Ihrer Standardübersetzungsdatei gelöscht haben.
https://github.com/gubatron/android-missing-strings
Um alle Reste in anderen Sprachen zu bereinigen, rufen Sie so auf
Dadurch werden die verbleibenden Zeichenfolgen bereinigt und der Bericht über fehlende Zeichenfolgen für alle Sprachen in die Datei all.txt ausgegeben
quelle
Sie müssen lediglich die fehlerhafte Zeile (oder nur eine der vielen fehlerhaften Zeilen) kopieren, entfernen und erneut einfügen. Das hat das Problem für mich beseitigt.
quelle
Ich habe dieses Problem durch die folgenden Schritte gelöst:
mein Projekt reinigen
es wieder aufzubauen
und schließlich ungültige Caches drücken / Im Dateimenü neu starten
quelle
Stellen Sie einfach sicher, dass Sie für alle Zeichenfolgendateien dieselben Namenskonventionen haben, einschließlich derselben Groß- und Kleinschreibung. Nehmen wir an, Sie haben "sign_in" in strings.xml und "sign_In" in Ihrer fr / string.xml, sodass Sie einen Fehler in fr / strings.xml erhalten, wie "wird hier übersetzt, aber nicht im Standardgebietsschema gefunden". Also, wenn Sie zu "sign_in" bearbeiten. Der Fehler wird behoben.
quelle
Kopieren und Einfügen hat bei mir nicht funktioniert.
Ich habe auch versucht, zu bereinigen und neu zu starten. Der vorherige Fehler war verschwunden, aber bei neu eingegebenen Zeichenfolgen treten immer noch neue Fehler auf.
Ich habe versucht, die geöffnete Datei strings.xml und den Übersetzungseditor zu schließen und dann neu zu starten.
string.xml-Datei und Übersetzungseditor
Das ist für mich in Ordnung.
quelle
Ich hatte dieses Problem für alle Zeichenfolgen in meiner XML-Datei.
Die Sache ist, dass Ihre Standardeinstellung
strings.xml
keintools:locale
Attribut haben sollte, wie es die anderen übersetzten Dateien haben. Wenn dies der Fall ist, wird die App bei jeder Kompilierung im Release-Modus als eine andere übersetzte Datei behandelt.quelle