2013-07-03 34 views
2

我最近更新了現有Android項目使用Android Studio中,並沒有能夠得到它來構建:如何忽略隱藏目錄中的Android的build.gradle

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

一些嘗試後,我發現它在我們的源代碼控制的隱藏目錄中存在每個文件夾中的.arch-id,這是窒息。

我試着操縱的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') 
} 

的「水庫」的一部分似乎是目前的罪魁禍首,但它不支持「排除'關鍵字。

回答

4

您可以嘗試類似:

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