AndroidStudio 3.0からビルドフレーバーの仕様が変更され、ライブラリプロジェクトのビルドフレーバーとアプリプロジェクトのビルドフレーバーが同じものを使うようになりました。また、フレーバーディメンションの設定が必須になりました。これは、例えばある機能に関するビルドフレーバーA, Bと別の機能に関するビルドフレーバーM, Nを指定すると、ビルド時にこれらの組み合わせ(つまりA-M, A-N, B-M, B-Nという4種類)のビルドフレーバーを作れる機能です。便利ですね!
ビルドフレーバーに関する説明はこちらの記事に詳しく書かれています。
便利なのはいいですが、そのせいで古いバージョンのAndroidStudioで作ったプロジェクトがそのままではビルドできなくなることがあります。その時に表示されるエラーメッセージはこれです。
Error:A problem occurred configuring project ':app'.
> All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
これを解決するためには、明示的にフレーバーディメンションを指定する必要があります。
ここに古いバージョンのAndroidStudioで作ったbuild.gradleがあるじゃろ?
productFlavors {
free {
...
}
paid {
...
}
}
これを…こうじゃ!
flavorDimensions "myType"
productFlavors {
free {
dimension "myType"
...
}
paid {
dimension "myType"
...
}
}
myType
とした部分はなんでも良いです。好きな文字列を指定してください。