2011-04-18 5 views
0

android 라이브러리에서 상속하는 리소스에 대한 질문이 있습니다. android 라이브러리에서 리소스 상속

는 안드로이드 라이브러리 프로젝트가 그 도서관에서 당신이 넣어 가정 일부 리소스 패키지 이름 com.example에서 안드로이드 프로젝트에

이제 패키지 이름 com.libexample에서 (의 순간에 대한 문자열을 가정 해 봅시다) , 내가 전에 만든 라이브러리를 참조한다. 같은 정수를 할당받을 수 있습니다 내가 라이브러리의 문자열 중 하나를 사용하려면

내가 내 질문은

getString(com.libexample.R.string.test_string); 

사용하여 얻을 수 있습니다, 내 주요 프로젝트의 문자열 리소스 것이 가능합니다 ID는 내 라이브러리의 문자열로 보입니까? new_string의 의지가 test_string 리소스와 동일한 ID를 할당한다고 가정

getString(R.string.new_string); 

: 그이면 위의 코드 문은 사실상 동일 할 것이다 일으킨다.

+0

두 가지 가능성 중 하나가 사실이 아닌 한 ID가 일치 할 수 있다고 가정합니다. 1. Android 컴파일러는 모든 라이브러리에서 'R'이라는 모든 클래스를 검색하고 각각의 ID에 대해 이미 사용하고 있습니다. (거의 없을 것 같습니다.) 2.'R'의 id는 전적으로 무작위가 아니며'comp.libexample.R'의 id가'com.someotherthing.R'의 id와 효과적으로 일치하지 않는 것으로 보장되는 컴파일 유닛의 충분한 정보를 포함합니다 (가능성이 더 높습니다) . – aroth

답변

0

분명히 컴파일러는 동일한 생성 된 R.java 파일 아래의 리소스를 자동으로 추가하여 충돌을 방지합니다.

관련 문제