[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.
Ich glaube nicht, dass Sie den gleichen Dateinamen auch mit verschiedenen Erweiterungen haben können. Versuchen Sie, das Png etwas anderes zu benennen.
Jetzt habe ich nicht überschrieben, also scheint dies seltsam, da Sie erwarten, dass dies wie Sie das Asset überschreiben. Aber ich denke, Sie haben entweder die beiden Assets in Ihrer Bibliothek gleich benannt. Und in Ihrem Projekt könnte es in Ordnung sein, ein Asset mit dem gleichen Namen zu haben. Ich würde jedoch prüfen, ob es ok ist, verschiedene Arten zu haben. XML ist anders als png, und wenn Sie aus Code auf das Asset zugreifen, könnten Sie Typfehler bekommen.
Lassen Sie mich den obigen Punkt verdeutlichen. Ich verstehe, dass ein Bibliotheksprojekt ein Element mit der gleichen Ressourcen-ID wie ein Element in Ihrer Anwendung haben kann.
Der obige Fehler deutet jedoch darauf hin, dass sich main_background.png und main_background.xml im selben Projekt befinden ([com.mycom.mylib.myapp]), was ich nicht für korrekt halte.
Literatur
dieser Seite werden die verschiedenen Arten von Projekten einschließlich der Bibliotheksprojekt http://developer.android.com/tools/projects/index.html
Jetzt beschreibt ich weiß nicht, woher ich den Eindruck gewonnen, aber nachdem sah wieder es einfach nicht Geben Sie an einer beliebigen Stelle an, dass Sie eine Ressource überschreiben können, indem Sie denselben Ressourcennamen verwenden. Gott weiß warum ich dachte das war ein Feature.
Also nein, die gleiche Regel gilt, soweit ich sagen kann, dass Ressourcen auch über Bibliotheksprojekte hinweg eindeutig benannt werden müssen, da sonst die generierten Ressourcen-IDs in Konflikt geraten. (Der Fehler, den Sie bekommen)
Was wird erläutert, wie Ressourcenkonflikte verwaltet werden.
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.
Das System verwendet die Ressource mit der höchsten Priorität und verwirft alles andere. Was seltsam ist, ist, dass Sie denken würden, dass ein Kompilierungsfehler nicht auftreten würde, da der Compiler die Ressource verwerfen sollte. Das lässt mich glauben, dass das Original-Poster die gleichnamigen Assets im Projekt selbe hatte und nicht über die lib und das Projekt.
Ich habe nirgends gelesen, dass dies eigentlich eine beabsichtigte Funktion ist. Haben Sie irgendwelche Links, um etwas anderes zu sagen? (Kommentiere sie)
Haben Sie schon eine Lösung für dieses Problem? – Sam
Entschuldigung. Ich habe das aufgegeben. Ich machte endlich einen PNG, der wie mein Xml aussah. Ich bin immer noch verärgert darüber, dass ich diese kb verschwenden musste :) – l33t