如何忽略Android build.gradle中的隐藏目录
我最近更新了一个现有的Android项目,以使用Android Studio,但未能将其构建:如何忽略Android build.gradle中的隐藏目录,android,gradle,build.gradle,Android,Gradle,Build.gradle,我最近更新了一个现有的Android项目,以使用Android Studio,但未能将其构建: Execution failed for task ':mergeDebugResources'. > Index: 0 经过一些实验,我发现它阻塞了源代码管理的隐藏目录,.arch id,它们存在于每个文件夹中 我尝试使用exclude关键字操纵build.gradle,但没有成功: sourceSets { main { manifest.srcFile 'Andr
Execution failed for task ':mergeDebugResources'.
> Index: 0
经过一些实验,我发现它阻塞了源代码管理的隐藏目录,.arch id,它们存在于每个文件夹中
我尝试使用exclude关键字操纵build.gradle,但没有成功:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java {
srcDirs = ['src']
exclude '**/.arch-ids/*'
}
resources {
srcDirs 'src'
exclude '**/.arch-ids/*'
}
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res {
srcDirs = ['res']
}
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
“res”部分目前似乎是罪魁祸首,但它不支持“exclude”关键字。您可以尝试以下方法:
android {
...
sourceSets {
main {
...
res.srcDirs = ['build/filtered_resources']
...
}
...
}
然后任务依赖项使用筛选的资源复制:
task __filteredResources(type:Copy) {
from('res/') {
exclude '**/.arch-ids/*'
}
into 'build/filtered_resources'
includeEmptyDirs = true
}
tasks.whenTaskAdded { task ->
if (task.name == 'generateBuildConfig') {
task.dependsOn __filteredResources
}
}
您可以尝试以下方法:
android {
...
sourceSets {
main {
...
res.srcDirs = ['build/filtered_resources']
...
}
...
}
然后任务依赖项使用筛选的资源复制:
task __filteredResources(type:Copy) {
from('res/') {
exclude '**/.arch-ids/*'
}
into 'build/filtered_resources'
includeEmptyDirs = true
}
tasks.whenTaskAdded { task ->
if (task.name == 'generateBuildConfig') {
task.dependsOn __filteredResources
}
}