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'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
'program story' 카테고리의 다른 글
React Native에서 뷰의 배경색을 투명하게 설정하는 방법 (0) | 2020.08.14 |
---|---|
IEnumerable 초기화 (0) | 2020.08.14 |
실행 도구를 사용하여 내부 저장소에서 데이터베이스 또는 기타 파일 검색 (0) | 2020.08.14 |
Rails 3 양식 제출 버튼의 텍스트를 변경하는 방법 (0) | 2020.08.14 |
mac os x 터미널 배치 이름 바꾸기 (0) | 2020.08.14 |