【问题标题】:How to ignore hidden directories in Android build.gradle如何忽略 Android build.gradle 中的隐藏目录
【发布时间】:2013-07-03 17:18:23
【问题描述】:

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

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

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

我尝试使用 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 gradle build.gradle


    【解决方案1】:

    你可以试试这样的:

    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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      • 2015-08-25
      • 1970-01-01
      相关资源
      最近更新 更多