Frage von Doofit, 20

Android Studio: Error:(331) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?

Hallo, ich programmiere mal wieder eine App in Android Studio. Bisher hat immer alles geklappt. Nach dem Update kommen jetzt aber zwei Fehler:

Error:(331) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?

Error:(368) Unexpected end tag string

Als Fehlerzeile wurde mir zuerst ein Wort angezeigt, welches ich fett schreiben wollte (ohne Punkte):

<.b.> Firma <./.b.>

Ich habe alles mögliche probiert, was Google parat hatte, sprich:

formatted="false"

oder

&lt;b&gt;Firma&lt;/b&gt;

Das Problem was ich habe, kann ich im Internet nicht finden. Auf stackoverflow.com wurde über den Fehler oft diskutiert, allerdings im Bezug auf das %-Zeichen. Dafür gibt es auch jede Menge Lösungsvorschläge, die ich auch alle bei mir versuchte, das hat aber nicht geklappt. Wenn ich <.b.> bzw <./.b.> komplett aus dem Code entferne, springt der Fehler an eine andere Stelle:

 <string name="Firma">Die Firma hat 5000 Mitarbeiter</string>

Auch hier habe ich die Lösungsvorschläge versucht. Der Fehler bleibt. Ich lösche den Code ganz und schreibe ihn komplett neu (ohne Copy/Paste). Der Fehler kommt wieder.

developer.android.com hat ein Beispielcode um einen fetten Text zu schreiben:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="welcome">Welcome to <b>Android</b>!</string>
</resources>

Mein Code sieht genau so aus, bis auf die Tatsache, dass ich statt Android eben Firma im Code stehen habe und er etwas umfangreicher ist. Ich hab es auf jede erdenkliche Weise versucht.....ich bin am verzweifeln, da mich das Problem schon seit einer Woche vom coden abhält. Ich weiß nicht mher weiter, vielleicht hat ja jemand noch einen Vorschlag.....

Danke

Antwort
von regex9, 16

Ja, spätestens seit Version 2.3 der SDK verwendet das Android Asset Packaging Tool strikte Vorgaben, die du wohl nicht einhältst.

An deiner Stelle würde ich zuerst einmal das Android-Beispiel versuchen, so wie es ist. Mit all seinen Bedingungen, die es stellt. Wenn das funktioniert, hast du eindeutig einen Syntaxfehler.

Sollte auch das nicht funktionieren, würde ich mich an dem htmlEncode-Beispiel probieren (https://developer.android.com/guide/topics/resources/string-resource.html#Format...) oder einmal eine leere string-Ressource verwenden. Gehe also erst einmal zurück auf Null, bis du einen buildfähigen Zustand hast, und hangel dich dann Schritt für Schritt voran.

Im Übrigen weist diese Zeile:

Error:(368) Unexpected end tag string

bereits daraufhin, dass da irgendetwas verhindert, dass das Markup richtig geparsed werden kann.

Keine passende Antwort gefunden?

Fragen Sie die Community