2013-08-20 2 views
1

Android 라이브러리 프로젝트의 리소스에 문제가 있습니다. 라이브러리 프로젝트는 JAR 파일의 .class 파일과 res 폴더의 리소스로 이미 컴파일 된 소스로 구성됩니다. 수업은 --non-constant-id AAPT 옵션으로 컴파일되었습니다. 내 라이브러리 프로젝트에서Android 라이브러리 프로젝트가 잘못된 리소스를 반환합니다.

는 내가 가진 :

res/drawable/image2.png 

이클립스는 각 프로젝트에 대한 R.txt 및 R.java를 생성 : 내가 가지고있는 라이브러리 프로젝트에 대한 프로젝트에서

res/drawable/image1.png 
res/drawable/image3.png 

의존. 그래서 전체적으로 두 개의 R.txt와 두 개의 R.java가 있습니다. 라이브러리 프로젝트의 R.java에서

는 자원 ID는 같은 수 있습니다 :

image1=0x7f02007c; 
image3=0x7f02007d; 

라이브러리 프로젝트는이 R.java 파일이 종속 프로젝트의 R.java가 최종 R를 산출과 통합되는 것을 의미합니다

예상대로
image1=0x7f02007c; 
image2=0x7f02007d; 
image3=0x7f02007e; 

image2를 포함 최종 R.java에서 1 메모리 위치를 시프트 : 된 .java 같다.

문제 : 나는 내 라이브러리 프로젝트에서 JAR 파일에서 R.drawable.image3 같은 자원을, 참조 할 때, 비 합병 R.java의 ID로 해결합니다. 예 : R.drawable.image3 = 0x7f02007d. 그러나 0x7f02007d 실제로 image2 가리 킵니다 및 잘못된 리소스가 반환됩니다. 내가 뭔가 잘못하고 있다고 가정합니다. 누군가는 그것이 무엇 일지에 관해서 어떤 생각을 가지고 있습니까?

+0

생성 된 코드를 삭제하여 재생성을 시도 했습니까? – ChiefTwoPencils

+0

@BobbyDigital 네, 두 프로젝트를 모두 지우고'R.txt'와'R.java' 파일이 사실 삭제되었다는 것을 확인했습니다. – shanet

답변

-3

나는이 문제를 해결했다. 라이브러리 프로젝트의 JAR 파일이 잘못 작성되었다는 것을 알게되었습니다 (내 빌드 시스템에만 해당). 검색하는 동안이 질문을 통해 오는 사람에게 미안; 그것은별로 도움이되지 않습니다.

+0

JAR 파일에서 동일한 문제가 발생하고 올바른 자원을 얻을 수 없습니다. 가능한 경우 도움을 청하십시오. –

+0

@PrabhjotSingh 그래서 질문이 있으면 기존 질문을 피기보다는 새로운 질문을 열어야합니다. 즉, getIdentifer() 함수를 찾으십시오. – shanet

+0

빌드 시스템과이를 수정 한 방법에 대해 자세히 설명해 주시겠습니까? 지금이 문제가 발생합니다. –

관련 문제