allprojects { repositories { // 阿里云 Maven 镜像 — 加速中国大陆依赖下载 maven { url = uri("https://maven.aliyun.com/repository/google") } maven { url = uri("https://maven.aliyun.com/repository/central") } google() mavenCentral() } } val newBuildDir: Directory = rootProject.layout.buildDirectory .dir("../../build") .get() rootProject.layout.buildDirectory.value(newBuildDir) subprojects { val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) project.layout.buildDirectory.value(newSubprojectBuildDir) } subprojects { // 为缺少 namespace 的旧 Flutter 插件自动注入 namespace // 解决 AGP 9.x 要求必须指定 namespace 的问题 plugins.withId("com.android.library") { val android = project.extensions.getByName("android") if (android is com.android.build.gradle.LibraryExtension && android.namespace == null) { val manifestFile = project.file("src/main/AndroidManifest.xml") if (manifestFile.exists()) { val packageName = manifestFile.readLines() .firstOrNull { it.contains("package=") } ?.let { line -> Regex("package=\"([^\"]+)\"").find(line)?.groupValues?.get(1) } if (packageName != null) { android.namespace = packageName } } } } } subprojects { project.evaluationDependsOn(":app") } tasks.register("clean") { delete(rootProject.layout.buildDirectory) }