试图遵循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 块并且错误仍然存在。