program story

Android의 strings.xml 파일 오류

inputbox 2020. 8. 14. 07:42
반응형

Android의 strings.xml 파일 오류


string.xml응용 프로그램 에서 긴 문자열을 선언했습니다 .

이렇게 선언

<string name="terms">PLEASE READ THESE TERMS OF USE CAREFULLY  BY ACCESSING THIS .................</string>

그러나 이것은 다음과 같은 오류를 제공합니다.

error: Apostrophe not preceded by \ (in PLEASE READ THESE TERMS OF USE CAREFULLY

전체 문자열을 게시하십시오. 하지만 내 생각에는 문자열에 아포스트로피 ( ') 문자가 있습니다. (\ ')로 바꾸면 문제가 해결됩니다. 예를 들면

//strings.xml
<string name="terms">
Hey Mr. Android, are you stuck?  Here, I\'ll clear a path for you.  
</string>

참고 :

http://www.mrexcel.com/forum/showthread.php?t=195353

https://code.google.com/archive/p/replicaisland/issues/48


해결책

strings.xml의 아포스트로피는 다음 과 같이 작성해야합니다.

\'



제 경우에는 strings.xml 에서이 문자열에 오류가 발생하여 수정했습니다.

<item>Most arguments can be ended with three words, "I don\'t care".</item>

여기에서 내 앱이 해당 코드로 제대로 빌드되는 것을 볼 수 있습니다.

여기에 이미지 설명 입력

다음은 내 앱의 실제 문자열입니다.

여기에 이미지 설명 입력


아포스트로피 앞에 \를 넣어야합니다. 이 \ '와 같이 values.xml이 아닌 strings.xml을 편집하고 있는지 확인하십시오 (오류가 표시되면 android studio 가이 파일로 안내합니다). values.xml을 편집하고 다시 컴파일을 시도하면 오류가 지속되기 때문입니다. 최근에 이런 일이 일어났습니다.


https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

아포스트로피 및 따옴표 이스케이프

문자열에 아포스트로피 또는 따옴표가 있으면 이스케이프하거나 전체 문자열을 다른 유형의 따옴표로 묶어야합니다. 예를 들어, 다음은 작동하거나 작동하지 않는 몇 가지 스팅입니다.

<string name="good_example">"This'll work"</string>
<string name="good_example_2">This\'ll also work</string>
<string name="bad_example">This doesn't work</string>
<string name="bad_example_2">XML encodings don&apos;t work</string>

strings.xml에서 히브리어 (RTL 언어)를 사용합니다. 나는이 문자에 대한 string.xml을 수동으로 검색했습니다. '앞쪽에 이스케이프 문자 \를 추가 한 것보다 (이제 \'처럼 보입니다) 여전히 같은 오류가 발생합니다!

나는 char '을 다시 검색하고 char'를 \ '(eng writing)로 바꿨습니다. 오른쪽에서 왼쪽으로 표시되기 때문에 strings.xml에서'\처럼 보입니다!

문제 해결됨.


(?<!\\)'이스케이프 처리되지 않은 아포스트로피를 검색 하려면이 정규식 사용하십시오 . 백 슬래시가 앞에 나오지 않는 아포스트로피를 찾습니다.


아포스트로피와 xml 문자열에서 지원되지 않는 기타 문자에 해당하는 유니 코드를 사용할 수 있습니다. 아포스트로피는 "\ u0027"입니다.


1. 오류 : 문자열에서 이스케이프 처리되지 않은 아포스트로피

내가 찾은 것은 AAPT2 도구가 때때로 xml의 잘못된 행을 가리킨다는 것입니다. 따라서 전체 strings.xml 파일을 수정해야합니다.

Android Studio에서 문제 파일 사용 :

편집-> 찾기-> 바꾸기

그런 다음 첫 번째 필드 \ '(또는 \ &,>, \ <, \ ")
를 두 번째 입력'(또는 &,>, <,")에
쓰고 필요한 경우 각각을 바꿉니다. (또는 ' )
그런 다음 첫 번째 필드에 다시 '(또는 &,>, <, ")를 입력
하고 두 번째에 \'
다음 필요한 경우 각각을 바꿉니다 (또는 '모두 바꾸기"의 경우').

2. 다른 문제가있는 기호의
경우 잘못된 기호를 찾을 수 없을 때까지 각 다음 절반 부분에 주석을 달기 위해 사용합니다.

예를 들어 이스케이프 된 단어 "\ update"는 예기치 않게 이러한 오류를 삭제합니다. :)


단순히 'with \'작업을 이스케이프하는 가장 좋은 대답은 모두를 사용하여 'to to를 \'사용할 때 한 번만 작동 하기 때문에 솔루션이 마음에 들지 않습니다 . 두 번째로 당신은 \\'.

따라서 사용 : \u0027.

참고 URL : https://stackoverflow.com/questions/5657047/error-in-strings-xml-file-in-android

반응형