我内的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