我有一个针对Android的小项目,并尝试添加一些源文件夹。 使用类似的东西:
sourceSets {
main.java.srcDirs += '../../some-source-folder/'
}
我也在我的iml文件中添加了这个:
<content url="file://$MODULE_DIR$/../../some-source-folder">
<sourceFolder url="file://$MODULE_DIR$/../../some-source-folder" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/../../some-source-folder/sub-folder" />
</content>
现在的问题是,我真的需要排除源文件夹的一些子文件夹&some; source-folder&#39; 在我的iml文件中使用excludeFolder意味着子文件夹不会显示在我的Android stdio中。但它们仍将使用gradle编译。
但是我的gradle文件中没有任何东西可以用java文件排除一些不能编译的子文件夹!
sourceSets {
main.java.srcDirs += '../../some-source-folder/'
main {
java {
exclude ('../../some-source-folder/some-subfolder', '../../some-source-folder/another-subfolder')
}
}
}
不起作用。
sourceSets {
main.java.srcDirs += '../../some-source-folder/'
exclude '../../some-source-folder/some-subfolder'
exclude '../../some-source-folder/another-subfolder'
}
也不起作用。
如果我尝试在完全闭包中添加带有排除的东西,例如
compile {
exclude '../../some-source-folder/some-subfolder'
}
我收到错误
Gradle sync失败:找不到参数[build _....]的方法compile()
我使用
得到类似的错误 excludes '...'
或
exclude = ['....', '....', '....']
会导致错误:
Gradle sync失败:找不到参数的方法排除()...
和
Gradle sync失败:没有方法签名:java.util.LinkedHashSet.getAt()适用于参数类型:(java.util.ArrayList)值:
是否有一种简单的方法可以将任何源文件夹添加到Android Studio中的项目中并排除几个子文件夹或/和源文件?
答案 0 :(得分:0)
Since you are using android studio and the android project structure is a bit different, you should use Build Variants and configure a product flavor. Foreach build variant you can configure a source set.
For instance:
src/demoDebug/ (build variant source set)
src/debug/ (build type source set)
src/demo/ (product flavor source set)
src/main/ (main source set)
Check it here: https://developer.android.com/studio/build/build-variants.html#sourcesets