Wie kann ich verhindern, dass IntelliJ Ressourcen in das Projekt-Compiler-Ausgabeverzeichnis kopiert?

Ich habe die folgende Verzeichnisstruktur in IntelliJ, die ein Android-Bibliotheksprojekt enthält:

java/com/example/base/AndroidManifest.xml java/com/example/base/assets # contains Android assets java/com/example/base/res # contains Android resources java/com/example/base/Base.java java/com/example/base/base.iml 

Das base.iml enthält folgendes:

 <content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$" isTestSource="false" packagePrefix="com.example.base" /> <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" /> <excludeFolder url="file://$MODULE_DIR$/res" /> </content> 

Wenn ich ein Android-Anwendungsprojekt baue, das von meinem Bibliotheksprojekt abhängt, bekomme ich einen Fehler:

 [myapp] java.util.zip.ZipException: duplicate entry: res/drawable/image_shadow.9.png 

Im Projektstruktur- Dialog habe ich die Projekt-Compiler-Ausgabe als ein out Verzeichnis unter dem Stamm meines Projekts konfiguriert. Wenn ich versuche, mein Android-Projekt zu bauen, bemerkte ich, dass Kopien meiner Android-Ressourcen unter dem out/production/base/com/example/base/res/ Ordner enden.

Meine Hypothese ist, dass meine Android-Ressourcen wie "normale" Java-Ressourcen behandelt werden (der Typ, den Sie mit Class.getResource() laden würden), weshalb sie in out/production kopiert out/production , was wiederum die duplicate entry Das sehe ich

Irgendeine Idee, wenn dies der Fall ist? Wenn ja, wie kann ich verhindern, dass diese Dateien kopiert werden? In Eclipse hat das <classpathentry> -Element in der .classpath Datei ein excluding Attribut, das ein Globmuster verwendet, um diese Art von Verhalten zu verhindern.

  • NoClassDefFoundError mit Bibliotheken in Android Studio
  • Wie finde ich alle unbenutzten Methoden meines Projektes in der Android Studio IDEA?
  • Wie integriert man Robolectric, Maven, ActionBarSherlock (und vorzugsweise + IntelliJ) in ein Android-Projekt?
  • Android Studio - Importieren von Simple-Xml-Bibliothek
  • IntelliJ Idea 12 + Android + Scala heutzutage
  • IntelliJ android UI Rendering Probleme - fehlende Bibliothek
  • Android Studio: Wie man einen Hotkey zum Löschen von Logcats erstellt?
  • Android mit Intellij Version 14 - Update XML Referenzen nur in der aktuellen XML-Ressource-Datei
  • 2 Solutions collect form web for “Wie kann ich verhindern, dass IntelliJ Ressourcen in das Projekt-Compiler-Ausgabeverzeichnis kopiert?”

    Ich stieß auf ein ähnliches Problem, weil das main als "Quellen" markiert wurde.

    Also in der Projektstruktur, für die Android-Facette, unter der Registerkarte "Struktur" hatte ich:

    ... Resources directory: .../src/main/res ...

    Und unter dem normalen "Quellen" -Reiter für das Modul wurde das main unter src als "Quellen" markiert.

    Ich habe es behoben, indem du die Sources-Registerkarte aussiehst:

    - src (unmarked) - main (unmarked) - java (Sources) - res (Resources)

    Also ich denke, der Fehler ist, weil die res Dinge in den Zip gepackt werden, sowohl als Quellen und Ressourcen daher die Duplikation.

    Sie sollten eine Projektstruktur wie:

    • Projekt / src / main / res
    • Projekt / src / main / assets
    • Projekt / src / main / java
    • Projekt / src / main / AndroidManifest.xml

    Wie auch immer, für res Ordner sollten Sie einen Eintrag wie folgt haben:

      <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" /> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.