[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.
No creo que pueda tener el mismo nombre de archivo, incluso con diferentes extensiones. Trata de nombrar el png como algo más.
Ahora, no he utilizado la anulación, así que esto parece extraño ya que es de esperar que sea así como anula el activo. Sin embargo, creo que tienes los dos activos en tu lib nombrados de la misma manera. Y que en su proyecto podría estar bien tener un activo con el mismo nombre. Sin embargo, verificaría si está bien tener diferentes tipos. XML es diferente de png, y si accede al activo desde el código puede obtener errores de tipo.
Permítanme aclarar el punto anterior. Entiendo que un proyecto de biblioteca puede tener un elemento con el mismo ID de recurso como un elemento en su aplicación.
Sin embargo, el error anterior sugiere que tanto main_background.png como main_background.xml están en el mismo proyecto ([com.mycom.mylib.myapp]) que no creo que sea correcto.
Otras lecturas
esta página se describen los diferentes tipos de proyectos, incluyendo el proyecto de biblioteca http://developer.android.com/tools/projects/index.html
Ahora no sé donde me dio la impresión de haber mirado, pero de nuevo, simplemente no lo hace indicar en cualquier lugar donde pueda anular un recurso utilizando el mismo nombre de recurso. Dios sabe por qué pensé que era una característica.
Así que no, la misma regla se aplica por lo que puedo decir, que los recursos deben nombrarse de manera única incluso en proyectos de biblioteca, de lo contrario, los identificadores de recursos generados entrarán en conflicto. (El error que obtiene)
Lo que se explica es cómo se gestionan los conflictos de recursos.
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.
El sistema utilizará el recurso con la más alta prioridad, descartando todo lo demás. Qué extraño, es que pensaría que un error de compilación no ocurriría ya que el compilador debería descartar el recurso. Esto me hace creer que el póster original tenía los activos de nombre similar en el mismo proyecto , y no en el lib y el proyecto.
No he leído en ninguna parte que esta sea en realidad una función prevista. ¿Tienes algún enlace para decir lo contrario? (comentarlos)
¿Tiene alguna solución a este problema todavía? – Sam
Lo siento. Me di por vencido en esto. Finalmente hice un png que se parecía a mi xml. Todavía estoy molesto porque tuve que perder esos kB :) – l33t