안드로이드 라이브러리 프로젝트를 만들려고했는데 빌드 프로세스가 제대로 작동하는 동안 프로젝트의 리소스를 대체하는 데 어려움이있었습니다. 라이브러리를 사용합니다. 내 라이브러리에서안드로이드 라이브러리 프로젝트에서 문자열 바꾸기 (또는 "오버라이드")
내가 가진 : 포함
library_layout.xml
< 텍스트 뷰
안드로이드 : ID = "@ + ID/str_my_string"
안드로이드 : layout_width = "wrap_content"
android : layout_text = "wrap_content"
>호출하는 자바 파일
((텍스트 뷰) this.findViewById (R.id.str_my_string))의 setText (R.string.my_string).; 내가
자원이 라이브러리를 사용하여
= > 자리 표시 자 <을 "my_string"< 문자열 이름을 포함
자원
strings.xml
프로젝트에서 >
/문자열
을 포함하는strings.xml
6,< 문자열 이름 = "my_string"> 실제 문자열 내용 </문자열 >
내가 기대하는 행동은 그 내가 라이브러리를 사용하여 프로젝트를 실행할 때, 텍스트보기에는 실제 문자열 내용, 실제로는 거짓을 포함합니다.
라이브러리를 사용하는 응용 프로그램에 보면, 나는 두 R
파일을보고, 둘 다 R.string.my_string
이 그 모두가 같은 숫자 값에 동일 할 .
그래서 Eclipse에서 문제가 발생하여 이전 cruft를 제거하지 못했던 것 같습니다. – jwriteclub
정확히 일치하지만 문자열이 라이브러리에서 번역되면 실패합니다. lib의 번역 된 버전은 using-app 버전 (번역 된 것인지의 여부)을 덮어 씁니다. 그래서 배운 교훈 : 자리 표시 자 문자열을 번역하지 마십시오. –
@ johand. 번역 된 문자열 리소스를 사용하는 라이브러리의 경우 프로젝트에서 재정의 할 방법이 있습니까? – Bruce