Fehler: Mehrere Ersetzungen in nicht-positionalem Format angegeben; Wollten Sie das Attribut formatted=”false” hinzufügen?

Lesezeit: 4 Minuten

Benutzer-Avatar
Ralf Wickum

Ich habe eine Android-App, die beim BUILD-Prozess folgenden Fehler auslöst:

/home/Ralf/Projekte/University/android-sampleapp/sampleapp/build/intermediates/bundles/debug/res/values-de/values-de.xml Fehler:(88, 5) Mehrere Ersetzungen in nicht-positionalem Format angegeben; Wollten Sie das Attribut formatted=”false” hinzufügen? Fehler: (88, 5) Unerwarteter End-Tag-String

/home/Ralf/Projekte/University/android-sampleapp/sampleapp/build/intermediates/bundles/debug/res/values/values.xml Fehler:(106, 5) Mehrere Ersetzungen in nicht-positionalem Format angegeben; Wollten Sie das Attribut formatted=”false” hinzufügen? Fehler: (106, 5) Unerwarteter End-Tag-String

/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug/values-de/values-de.xml Fehler:(131) Mehrere Ersetzungen in nicht-positionalem Format angegeben; Wollten Sie das Attribut formatted=”false” hinzufügen? Fehler: (131) Unerwarteter End-Tag-String

/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug/values/values.xml Fehler:(1258) Mehrere Ersetzungen in nicht-positionalem Format angegeben; Wollten Sie das Attribut formatted=”false” hinzufügen? Fehler: (1258) Unerwarteter End-Tag-String Fehler: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Fehler beim Ausführen des Prozesses /opt/sdk/build-tools/26.0.2/aapt mit arguments {package -f –no-crunch -I /opt/sdk/platforms/android-27/android.jar -M /home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/manifests/full /debug/AndroidManifest.xml -S /home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug -m -J /home/Ralf/Projekte/University/android-sampleapp/demo /build/generated/source/r/debug -F /home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/debug/resources-debug.ap_ -D /home/Ralf/Projekte/University /android-sampleapp/demo/build/intermediates/multi-dex/debug/manifest_keep.txt –custom-package com.ralfi.demo -0 apk –output-text-symbols /home/Ralf/Projekte/University/android -sampleapp/demo/build/intermediates/symbols/debug –no-version-vectors} Fehler: com.android.ide.comm on.process.ProcessException: Fehler beim Ausführen des Prozesses /opt/sdk/build-tools/26.0.2/aapt mit Argumenten {package -f –no-crunch -I /opt/sdk/platforms/android-27/android. jar -M /home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/manifests/full/debug/AndroidManifest.xml -S /home/Ralf/Projekte/University/android-sampleapp/demo/build/ intermediates/res/merged/debug -m -J /home/Ralf/Projekte/University/android-sampleapp/demo/build/generated/source/r/debug -F /home/Ralf/Projekte/University/android-sampleapp/ demo/build/intermediates/res/debug/resources-debug.ap_ -D /home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/multi-dex/debug/manifest_keep.txt –custom-package com.ralfi.demo -0 apk –output-text-symbols /home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/symbols/debug –no-version-vectors} Error:org.gradle .process.internal.ExecException: Prozess ‘command ‘/opt/sdk/build-tools/26.0.2/aapt” wurde mit Exit va ungleich Null beendet Lu 1

Wenn ich auf die Fehler bei den String-Ressourcen klicke, zeigt es auf: Hide for %02d:%02d min

Aber ich brauche eine Übersetzung für diese Ressourcen, warum bekomme ich diese?

  • Poste bitte die String-Ressource

    – Juan Cruz Soler

    19. Januar 2018 um 16:54 Uhr

  • Überprüfen Sie diese Antwort

    – Napster

    19. Januar 2018 um 17:01 Uhr

Benutzer-Avatar
Lukas Cabrales

Das liegt daran, dass Ihre String-Ressource mehrere hat %s oder ähnliches. Um dies zu vermeiden, müssen Sie jedes wie folgt identifizieren: %1$s. Beispiel:

<string name="full_name">First: %1$s - Last: %2$s</string>

Wo %1$s ist Ihre erste Auswechslung und %2$s ist dein zweiter.

Wenn Sie keine Ersetzung vornehmen möchten, fügen Sie einfach das Attribut hinzu formatted="false". Beispiel:

<string name="your_string" formatted="false">Level: 100%</string>

  • Ich habe bereits geändert zu: Zwei Werte %02d:%02d

    – Ralf Wickum

    22. Januar 2018 um 10:49 Uhr

  • Fügen Sie das Attribut “formatiert” wie folgt hinzu: <string name="two_decimal_values" formatted="false">Two values %02d:%02d</string>

    – Lukas Cabrales

    22. Januar 2018 um 14:05 Uhr

  • Sehr nützliche Antwort, vielen Dank für die Lösung meines Problems

    – Karue Benson Karue

    13. März 2018 um 12:58 Uhr


  • Ich habe mehrere Sprachdateien mit Hunderten von Zeichenfolgen. Gibt es irgendwo eine andere übergeordnete Einstellung, die eingestellt werden kann, anstatt jede einzelne Zeile zu ändern. Dies ist tatsächlich nur nach dem Upgrade von Gradle und Studio aufgetreten.

    – Markus Anderson

    12. August 2019 um 4:14 Uhr


  • Unsere übersetzten String-Ressourcendateien werden regelmäßig aus Phrase (auch bekannt als Phraseapp) importiert, wir können formatted=”false” nicht hinzufügen. Wie kann man diese Warnung in Gradle/aapt vollständig deaktivieren?

    – Luzian

    21. Juli 2021 um 10:08 Uhr

Eine andere Möglichkeit für diesen Fehler, wenn es zuvor eine Warnung war; Unter diesen Fehlern kann ein anderer Fehler versteckt sein, also müssen Sie diesen finden und beheben. Es gab einen doppelten Ressourcenwertfehler, und irgendwie löste das bei mir viele der „Mehrere Ersetzungen im nicht-positionalen Format“ aus, und das Finden und Beheben des doppelten Wertfehlers löste das Build-Problem.

Möglicherweise liegen diesem Fehler andere Probleme zugrunde. Zum Beispiel haben bei mir die einfachen Anführungszeichen (‘), die ich in eine Zeichenfolge eingefügt habe, dieses Problem verursacht. Die Verwendung dieses einfachen Anführungszeichens mit Backslash hat mir geholfen, den Fehler zu beheben. Wenn Sie diesen Fehler erhalten, nachdem Sie etwas geändert haben, überprüfen Sie bitte diese Änderungen.

  • Verwenden Sie Analysieren > Code untersuchen, um Fehler anzuzeigen. In meinem Fall hatte ich ein Widget gelöscht, aber es blieb ein Hinweis auf seine ID, und dieses Problem trat bei der Veröffentlichung auf.

    – Farid Fedora

    19. April um 5:38 Uhr

Benutzer-Avatar
Eeshvar Das

Eine Ersetzung wird durch ein Prozentzeichen gekennzeichnet, sodass jedes Prozentzeichen diesen Fehler verursachen kann, wenn das Prozentzeichen nicht richtig ersetzt wird.

Das Prozentzeichen ist ein ungültiges XML-Zeichen, es sei denn, es wird ordnungsgemäß für die Ersetzung in diesem Dateiformat verwendet.

Geben Sie das Wort Prozent ein, anstatt das Symbol zu verwenden.

1228580cookie-checkFehler: Mehrere Ersetzungen in nicht-positionalem Format angegeben; Wollten Sie das Attribut formatted=”false” hinzufügen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy