[com.mycom.mylib.myapp] res\drawable\main_background.xml:0: error: Resource entry main_background is already defined.
[com.mycom.mylib.myapp] res\drawable\main_background.png:0: Originally defined here.
다른 확장자로도 동일한 파일 이름을 사용할 수 있다고 생각하지 않습니다. PNG의 다른 이름을 지정해보십시오.
이제 재정의를 사용하지 않았습니다. 따라서 자산을 재정의하는 방법이 될 것으로 예상되므로 이상하게 보입니다. 그러나 나는 당신이 같은 이름의 라이브러리에 두 자산을 가지고 있다고 생각합니다. 그리고 프로젝트에서 같은 이름의 애셋을 사용하는 것이 좋습니다. 그러나 나는 그것의 ok가 다른 타입을 가지고 있는지 점검 할 것입니다. XML은 png와 다르며 코드에서 애셋에 액세스하면 형식 오류가 발생할 수 있습니다.
위의 사항을 분명히 설명합니다. 라이브러리 프로젝트는 애플리케이션의 항목과 동일한 리소스 ID를 가진 항목을 가질 수 있음을 알고 있습니다.
그러나 위의 오류는 main_background.png와 main_background.xml이 동일한 프로젝트 ([com.mycom.mylib.myapp])에 있음을 보여줍니다. 그 프로젝트는 정확하지 않다고 생각합니다.
이 페이지는 내가에서 인상을 가지고 있지만, 간단하지 않습니다 다시보고 한 경우 이제 http://developer.android.com/tools/projects/index.html
내가 모르는 라이브러리 프로젝트를 포함하여 프로젝트의 다양한 유형에 대해 설명
추가 읽기 동일한 자원 이름을 사용하여 자원을 대체 할 수있는 모든 위치. 하나님은 내가 왜 그것이 특징이라고 생각하는지 안다.
그렇다면 라이브러리 프로젝트 간에도 고유 한 이름을 지정해야한다는 동일한 규칙이 적용됩니다. 그렇지 않으면 생성 된 리소스 ID가 충돌합니다. (귀하의 오류가 점점)
설명하는 방법은 리소스 충돌을 관리하는 방법입니다.
Resource conflicts Since the tools merge the resources of a library project with those of a dependent application project, a given resource ID might be defined in both projects. In this case, the tools select the resource from the application, or the library with highest priority, and discard the other resource. As you develop your applications, be aware that common resource IDs are likely to be defined in more than one project and will be merged, with the resource from the application or highest-priority library taking precedence.
시스템은 우선 순위가 가장 높은 자원을 사용하고 나머지는 폐기합니다. 이상하게도, 컴파일러가 리소스를 폐기해야하므로 컴파일 오류가 발생하지 않는다고 생각할 수 있습니다. 이것은 원래의 포스터가 동일한 프로젝트에있는 비슷한 이름의 자산을 갖고 있으며 lib와 프로젝트 전체에 걸쳐 존재하지 않는다고 생각합니다.
어디서나 실제로 의도 된 기능을 읽지 않았습니다. 달리 말할 수있는 링크가 있습니까? (댓글 달기)
이 문제에 대한 해결책이 있습니까? – Sam
죄송합니다. 나는 이것을 포기했다. 마침내 내 xml처럼 보인 png를 만들었습니다. 나는 그 kB를 낭비해야만한다는 것을 여전히 화나게하고있다. :) – l33t