programing

Android의 strings.xml 파일에 오류가 발생했습니다.

padding 2023. 10. 20. 13:28
반응형

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>

여기 그 코드로 내 앱이 제대로 구축되는 것을 볼 수 있습니다.

enter image description here

여기 제 앱의 실제 문자열이 있습니다.

enter image description here

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을 편집하고 있고 values.xml을 편집하고 있는지도 확인합니다(오류가 표시되면 안드로이드 스튜디오에서 이 파일로 안내합니다).values.xml을 편집한 후 컴파일을 다시 시도하면 오류가 지속되기 때문입니다.최근에 저한테 이런 일이 있었어요.

이 정규식 사용(?<!\\)'탈출하지 못한 아포스트로피를 찾기 위해서요백슬래시가 선행되지 않은 아포스트로피를 발견합니다.

strings.xml에서 히브리어(RTL 언어)를 사용합니다.수동으로 string.xml을 검색하여 이 char를 \ 앞에 이스케이프 char를 추가했지만(지금은 \'처럼 보입니다) 여전히 동일한 오류가 발생했습니다!

char '를 다시 검색해보니 char '를 \'(eng writing)로 대체했습니다. 왼쪽으로 오른쪽을 표시하기 때문에 strings.xml에서 '\'처럼 보입니다.

문제는 해결됐습니다.

단순히 탈출하는 것의 가장 좋은 답입니다.'와 함께\'효과는 있지만 나는 해결책이 마음에 들지 않습니다. 왜냐하면 사용할 때 모두 를 사용하기 때문입니다.'로.\', 한 번만 작동합니다.당신이 두번째로 남았을때는\\'.

따라서 다음을 사용합니다.\u0027.

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

1.오류의 경우: 문자열에서 탈출하지 못한 아포스트로피

제가 발견한 것은 AAPT2 툴이 xml의 잘못된 행을 가리키기도 한다는 것입니다.따라서 전체 strings.xml 파일을 수정해야 합니다.

Android Studio에서 문제 파일 사용:

편집->찾기->바꾸기

그런 첫 에 \'( \&,>\<,\")를 입력합니다.
second put '는 &,><,")
그런 다음 필요한 경우 각각 교체합니다. (또는 '인 경우 "모두 reptlace")
그런 다음 첫 번째 필드에 '(또는 &,><,")를 다시 입력합니다.
그리고 두번째 쓰기 \'
그런 다음 필요한 경우 각각 교체합니다. (또는 '인 경우 "모두 교체")

가 있는 . 다른 문제가 있는 기호에 대해서는
저는 잘못된 기호를 찾지 못할 때까지 각 다음 반 부분 + 리빌드에 대해 코멘트를 달곤 합니다.

예: 탈출어 "\update"가 예기치 않게 이러한 오류를 삭제합니다. :)

  1. 파일에서 모든 '을(를) 찾으려면 다음을 수행합니다.

Ctrl + F [검색 필드에 아포스트로피 입력] '

  1. ' "세계"로 적어야 합니다.
  1. 이 경우에는 모든 끈을 신경써주시기 바랍니다.
  2. 어떤 단어도 이 기호를 정상 문장으로 가지고 있지 않습니다.
  3. 이 표시 앞에 " \"만 더하면 됩니다.

**

ex.  Normal sentence: I 'll don't make cry anyone.
          Solution sentence : I \'ll don\'t make cry anyone.

** ☻♥ 코드 유지 완료.

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

반응형