FAQ:
All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
解決:
看官方文檔:
Plugin 3.0.0 includes a new dependency mechanism that automatically matches variants when consuming a library. This means an app's debug variant automatically consumes a library's debug variant, and so on. It also works when using flavors—an app's redDebug variant will consume a library's redDebug variant. To make this work, the plugin now requires that all flavors belong to a named flavor dimension —even if you intend to use only a single dimension. Otherwise, you will get the following build error:
2.Flavor Dimensions變更
Android Plugin3.0的依賴機制:在使用library時會自動匹配variant(debug, release),就是說app的debug會自動匹配library的debug,相信大多數人也像我一樣,當library多了,不會手動選擇每個Library的variant。現在好了,它會自動匹配了。同樣如果使用flavor的時候,比如app的redDebug同樣會自動匹配library的readDebug。雖然有這樣的優勢,但是在使用flavor時,必須定義flavor dimension,否則會提示錯誤:
Error:All flavors must now belong to a named flavor dimension. The flavor 'flavor_name' is not assigned to a flavor dimension.
- 這個錯誤,我也已經在使用Android Studio3.0以后碰到好多次了。現在使用flavor,必須像下面一樣配置:
// Specifies a flavor dimension.
flavorDimensions "color" productFlavors { red { // Assigns this product flavor to the 'color' flavor dimension. // This step is optional if you are using only one dimension. dimension "color" ... } blue { dimension "color" ... } }
- 注意:如果library有兩個dimensions:color,shape,但是app只有color,那么會如下的編譯錯誤:
Error:Could not resolve all dependencies for configuration ':bar:redDebugCompileClasspath'. Cannot choose between the following configurations on project :foo: - redCircleDebugApiElements - redSquareDebugApiElements ...
- 在APP使用flavorSelection選定使用某個flavor dimension,注意如下配置:
android {
... // The flavorSelection property uses the following format: // flavorSelection 'dimension_name', 'flavor_name' // Chooses the 'square' flavor from libraries that specify a 'shape' // dimension. flavorSelection 'shape', 'square' }
ref docs:
遷移到Android Studio 3.0
http://blog.csdn.net/ncuboy045wsq/article/details/73521856
https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html