android - 如何忽略Android build.gradle中的隐藏目录

标签 android gradle build.gradle

我最近更新了一个现有的 Android 项目以使用 Android Studio,但无法构建它:

Execution failed for task ':mergeDebugResources'.
> Index: 0

经过一些实验,我发现它被我们的源代码管理的隐藏目录 .arch-ids 阻塞了,这些目录存在于每个文件夹中。

我尝试使用排除关键字操作 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 - 如何忽略Android build.gradle中的隐藏目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17454346/

相关文章:

android - 应用程序在后台时如何处理推送 firebase 通知单击事件?

git - 添加托管在 Github 上的私有(private) Maven 存储库作为 Gradle 中的依赖项

android - 如何为 android studio 3.1.2 编辑外部库?

android-studio - Android Studio gradle flavordimensions 构建变体无法正常工作

gradle - 了解gradle多项目build.gradle执行顺序

从断点恢复后,Android 应用程序运行非常缓慢

android - textview在android中切断一个字母

Android Studio : How to import AIDL file from a different Android Studio project?

java - 在 IntelliJ 中使用 Gradle 导入 Protobuf 生成的类

java - Gradle 任务 - 将参数传递给 Java 应用程序