하나 이상의 apk libs가있는 프로젝트가 컴파일되면 aapt 도구로 하나 이상의 R.java가 생성됩니다. 각 라이브러리마다 하나씩, 응용 프로그램 자체에 하나씩.R 클래스의 동일한 리소스에 대해 서로 다른 ID가 생성됩니다.
각 R 파일은 동일한 ID를 정의합니다. 이것은 꽤 오래 동안 문제없이 일했습니다. 사실 년. 하지만 갑자기 더 이상. 이제 동일한 리소스에는 두 개의 서로 다른 ID가 있습니다.
대상/생성 - 소스/R/COM/viewpagerindicator/R.java :
public static int default_line_indicator_selected_color=0x7f04000b;
대상/생성 - 소스/R/그물/소스 포지/UIQ3/fx602p/R.java :
public static final int default_line_indicator_selected_color=0x7f07000b;
아무도 아이디어가 잘못되었을 수 있습니까?
업데이트 :
내가 다른 프로젝트와 함께 확인을 두 번. 여기서 나는 final
과 별개로 R.java 파일이 100 % 동일해야한다고 언급했다. 특히 : 각 R.java 파일은 모든 ID를 정의해야합니다. - 라이브러리의 일부가 아닌 ID조차도 정의해야합니다.
내 귀찮은 프로젝트에서도 마찬가지입니다. 각 라이브러리 R.java는 라이브러리가 사용하는 ID 만 정의합니다.
신속하고 더러운 수정
나는 내가 신속하고 더러운 수정으로 다음과 같은 개미 작업을 사용하여 실제 문제가 무엇인지 찾을 때까지 :
<copy
encoding='${project.build.sourceEncoding}'
file='target/generated-sources/r/net/sourceforge/uiq3/fx602p/R.java'
overwrite='true'
toFile='target/generated-sources/r/com/viewpagerindicator/R.java'
>
<filterchain>
<tokenfilter>
<replacestring
from='net.sourceforge.uiq3.fx602p'
to='com.viewpagerindicator'
></replacestring>
</tokenfilter>
</filterchain>
</copy>
내가 aapt에를 호출 할 이유 궁금해 검색 및 바꾸기가 포함 된 사본이 트릭을 수행 할 수있는 여러 번. 그리고 나는 final
도 제거하지 않는다는 것을 유의하십시오.
예 서로 다른 R.java 파일에있는 - 그래서 하나가 하나 개의 문자 차이를 발견 할 수 서로의 상단에 다음 뒀다. 그러나 귀하의 질문은 이것이 혼란 스럽다는 것을 나타냅니다. 나는 본문을 바꾼다. – Martin
유일한 것은 프로젝트에서 구축하는 것입니다. – njzk2