Jeroen Mols のモジュール化のサンプルに従ってみようとして、彼はすべてのモジュールがバージョン番号を共有できるようにする優れた手法を指定しています。最上位プロジェクト build.gradle で、これを追加します。
subprojects {
afterEvaluate { project ->
if (project.hasProperty('android')) {
android {
compileSdkVersion build_versions.target_sdk
defaultConfig {
minSdkVersion build_versions.min_sdk
targetSdkVersion build_versions.target_sdk
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
}
}
}
これで、モジュール レベルの build.gradle ファイルでこれらのフィールドを指定する必要がなくなりました。しかし、私は得る:
GradleException: Android tasks have already been created.
このエラーの説明のように、android.applicationVariants、android.libraryVariants、または android.testVariants を指定していないので、ここで何が間違っているのでしょうか? すべてのモジュールから Android ブロックを完全に削除しようとしましたが、エラーは解決しません。