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:

  • Jacoco Code Coverage im androiden Studio
  • Android: Rufen Sie benutzerdefinierte Methoden in einem ContentProvider an
  • Android Bitmap auf Base64 String
  • Android: Soft-Tastatur automatisch anzeigen, wenn Fokus auf einem EditText liegt
  • Wie können wir Anrufe und SMS in Android simulieren?
  • Wie bekomme ich eine neue Breite / Höhe des Root-Layouts in onConfigurationChanged?
  •  <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.

  • Absicht für Google Maps 7.0.0 mit Standort
  • Wie kann ich die Einstellungen von Gradle JVM in Android Studio 1.3 einstellen?
  • Wo finde ich Android Tab Icons
  • Halten Sie den Benutzerstatus in Android
  • Umwandlung von Kamera-YUV-Daten in ARGB mit renderscript
  • SQlite Nächste Orte (mit Breiten- und Längengrad)
  • 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.