我內的IntelliJ以下目錄結構,其中包含一個Android庫項目:如何防止來自的IntelliJ複製的資源投入到項目的編譯器輸出目錄?
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
的base.iml
包含以下內容:
<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>
當我建立這取決於我的圖書館一個Android應用程序項目項目中,我得到一個錯誤:
[myapp] java.util.zip.ZipException: duplicate entry: res/drawable/image_shadow.9.png
在項目海虹之彩cture對話框,我配置了項目編譯器輸出是我項目根目錄下的out
目錄。當我嘗試建立我的Android項目,我發現我的Android資源的副本out/production/base/com/example/base/res/
文件夾下結束。
我的假設是我的Android資源被當作「正常」的Java資源(類型,你將加載使用Class.getResource()
),這就是爲什麼他們被複制到out/production
,這反過來又導致duplicate entry
例外,我看到。
任何想法,如果是這樣的話?如果是這樣,我怎麼能防止被複制這些文件?在Eclipse中,在.classpath
文件<classpathentry>
元素具有excluding
屬性,需要一個glob模式,以防止這種行爲。
我應該補充一點,我試着在黑暗中拍攝''的東西。任何需要它的解決方案都是不合需要的,因爲它會在IntelliJ的用戶界面中隱藏源碼樹中的res文件夾。我想排除該文件夾被視爲編譯,而不是可見。 –
bolinfest
這個問題可能在你的Android方面設置,可能錯誤的目錄配置爲'res'。如果沒有'.iml'文件,不能說更多。 – CrazyCoder
我相信我的小面具有的標準樣板: <組件名稱= 「FacetManager」> <面型= 「機器人」 名稱= 「機器人」> <結構> <選項名= 「RES_FOLDER_RELATIVE_PATH」 值=」/RES」 /> 配置> SO似乎並沒有讓我貼了整個事情。 我很好奇這個與packagePrefix和Android庫項目的交互是否已經過測試? – bolinfest