2013-03-29 6 views
71

Mam ciąg określony w android aplikacji:Apostrophe nie poprzedzone

<string name="search_occurs">'{string}' occurs {times}</string>

To daje błąd: Apostrophe nie poprzedzone \ (w '{ciąg}' występuje {razy})

próbowałem wiele rzeczy, aby rozwiązać ten problem:

<string name="search_occurs">\'{string}\' occurs {times}</string> 
<string name="search_occurs">&apos;{string}&apos; occurs {times}</string> 
<string name="search_occurs"><![CDATA['{string}' occurs {times}]]></string> 
<string name="search_occurs"><![CDATA[\'{string}\' occurs {times}]]></string> 

nie jestem w stanie pozbyć się błędu. czego mi brakuje?

+6

'\ '' działa dla mnie. Po prostu wypróbowałem to w Eclipse. – CommonsWare

+4

Po dodaniu odwrotnego ukośnika przed apostrofem, konieczne było "Wyczyść" i odbudować cały projekt, aby Eclipse przestał narzekać na błąd. – Stan

Odpowiedz

89

powinny one zarówno praca według http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling:

<string name="search_occurs">\'{string}\' occurs {times}</string> 
<string name="search_occurs">"'{string}' occurs {times}"</string> 
+4

Drugi zadziałał. Dzięki. –

+0

Pierwszy zadziałał dla mnie, nie testowałem drugiego. Świetna robota – VVB

+2

Obie powinny, w obu wypadkach wycinanie i odwrotny ukośnik w programie Android przed kompilacją, także konwertuje się w pojedynczy cudzysłów, a następnie wyświetla błąd. –

3

Dlaczego nie podasz ' z ciągiem, który go zastąpisz?

Znasz także takie konstrukcje?

<string name="profile_age_range_text_between">between %1$d and %2$d</string> 
<string name="unit_height_inches">%1$d\'%2$d ft</string> 
<string name="unit_distance_miles">%s mi</string> 
44

wystarczy umieścić \ przed 'w ciąg To FAŁSZ It \' s PRAWDA :)

+0

Czy jest to czystszy sposób robienia tego? Lokalizuję swoją aplikację na francuski, a mój folder z tekstem zawiera dużo tekstu. Zatem przeglądanie całego tekstu i dodawanie odwrotnego ukośnika to oczywiście nie najlepszy pomysł. –

+0

Nie, to jedyny sposób. –

+0

@The_Martian Mam ten sam problem, czy znalazłeś sposób inny niż sugerowany? – Nobody

0

W odpowiedzi na https://stackoverflow.com/users/3339394/the-martian Istnieje ogólne rozwiązanie polegające na zamianie 'po \', musisz skopiować tekst do edytora tekstów (np. Notepad ++), a następnie używając opcji "zamień" w programie zamień całość na \ '. (bo mam za mało reputacji musiałem napisać to w odpowiedzi przepraszam!)

0

Ten błąd jest spowodowany apostrof stosowany w String

zastąpić apostrof z \”to wszystko

-1

I mam rozwiązanie oparte na moim scenariuszu.

  1. wybierz plik string.xml
  2. prawym przyciskiem myszy i otwarty pokaz w eksploratorze
  3. Edycja linii z pliku string.xml i zapisać kod.
  4. Ponownie otwórz studio Android i odśwież rozwiązanie.

Teraz kod zostanie uruchomiony.

Uwaga: mam błąd w użyciu Apostrophe na nie może. więc zmieniam się w Can not. Teraz mój scenariusz zadziała.

1

Wymień swoje apostrof (') z (\') lub add \ przed każdą (')

uwaga: kopiowanie wyłącznie wewnątrz() tekst

1

Upewnij się, że jesteś edytowanie poprawnego pliku. Jak podaje this answer, gdy pojawi się błąd, Android Studio otwiera plik values.xml, który wygląda podobnie do oryginalnego pliku.Musisz dodać \ w oryginalnym pliku strings.xml (lub w dowolnym miejscu, w którym występuje obrażająca postać). W przeciwnym razie po prostu będzie powtarzać błąd.

Powiązane problemy