2015-04-28 71 views

回答

3

如果你不想添加一行到sourceSets每次添加香精你可以用這樣的方式關閉

productFlavors{ 
    flavor1 {} 
    flavor2 {} 

    all { flavor -> 
     sourceSets[flavor.name].setRoot("src/flavors/${flavor.name}") 
    } 
} 
1

您可以通過使用sourceSets實現這一目標。

productFlavors { 
    flavor2 { 
    } 
    flavor1 { 
    } 
} 

sourceSets{ 

    flavor2 { 
     manifest.srcFile 'AndroidManifest-flavor2.xml' 
     res.srcDirs = ['res-flavor2', 'res'] 
     java.srcDirs = ['src/flavor2/java','src/commonFiles/java'] 
     resources.srcDirs = ['src/flavor2/java','src/commonFiles/java'] 
     aidl.srcDirs = ['src/flavor2/java','src/commonFiles/java'] 
     renderscript.srcDirs = ['src/flavor2/java','src/commonFiles/java'] 
    } 

    flavor1 { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src/flavor1/java','src/commonFiles/java'] 
     resources.srcDirs = ['src/flavor1/java','src/commonFiles/java'] 
     aidl.srcDirs = ['src/flavor1/java','src/commonFiles/java'] 
     renderscript.srcDirs = ['src/flavor1/java','src/commonFiles/java'] 
     res.srcDirs = ['res-flavor1','res'] 
     assets.srcDirs = ['assets'] 
    } 

} 
0

誠然,這可以通過使用sourceSets實現,但正確的和更簡單的解決方案是:

productFlavors{ 
    flavor1 {} 
    flavor2 {} 
} 

sourceSets{ 
    flavor1.setRoot('src/flavors/flavor1') 
    flavor2.setRoot('src/flavors/flavor2') 
}