2010-12-19 24 views
24

Zaktualizowałem mój ADT do najnowszej wersji po wydaniu Gingerbread. A terazADT pokazuje błąd w Strings.xml

<string name="date_format">%d:%d %s</string> 

pokazuje następujący błąd

Multiple annotations found at this line: 
- error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" 
attribute? 
- error: Unexpected end tag string 

Poprzednia wersja ADT działało. czy robię coś źle? Otrzymuję ten błąd, gdy istnieje więcej niż 1 specyfikator formatu.

+1

W moim przypadku błędnie wpisany param formatowania jako 1% $ s zamiast% 1 $ s. –

Odpowiedz

37

spróbuj wykonać następujące

<string name="date_format" formatted="false">%d:%d %s</string> 

szczegółowego wyjaśnienia można znaleźć odpowiedź na to pytanie: Android XML Percent Symbol

+0

Wiem, że ten wątek nie żyje, ale wielkie dzięki. Z jakiegoś powodu wiele demonów/przykładów SDK ma ten problem. – kmarks2

+0

To wygląda na obejście, więc myślę, że odpowiedź Hopii jest preferowana - ta wygląda na to, że dobrze współpracuje z narzędziem Android Asset Packaging Tool. –

42

Lub alternatywnie, można zmodyfikować% specyfikatory formatu użyć indeksy argumentów, jak więc:

<string name="date_format">%1$d:%2$d %3$s</string> 

Więcej informacji na temat klasy Formatter w Android Reference Docs.

+0

Uważam, że jest to lepsza odpowiedź niż zaakceptowana odpowiedź. –

0

Widzę również błąd związany z literówką: %$3s. Powinien być %3$s.

tylko dla kogoś, kto jest głupi jak ja :)

Powiązane problemy