pluginManagement { def flutterSdkPath = { def properties = new Properties() file("local.properties").withInputStream { properties.load(it) } def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath } settings.ext.flutterSdkPath = flutterSdkPath() includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") repositories { // 国内镜像优先(本环境 Maven Central / Gradle 插件中心受限) maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/central' } google() mavenCentral() gradlePluginPortal() } } plugins { // Flutter 3.29 起必须用声明式 flutter-plugin-loader(替代命令式 app_plugin_loader) id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.1.0" apply false // Stripe Android SDK 21.x 以 Kotlin 2.1 编译,KGP 需 ≥2.1(1.8 读不了 2.1 的 metadata) id "org.jetbrains.kotlin.android" version "2.1.0" apply false } dependencyResolutionManagement { // 统一用 settings 声明的仓库(含 includeBuild 的 flutter_tools/gradle),镜像优先。 // PREFER_SETTINGS 模式下 project 级仓库(含 flutter.groovy 经 rootProject.allprojects 注入的 // download.flutter.io)会被忽略,故 flutter 引擎 embedding 仓库必须在此显式声明, // 否则插件项目(如 alipay_kit_android)解析不到 io.flutter:flutter_embedding_*。 repositoriesMode = RepositoriesMode.PREFER_SETTINGS repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/central' } // Flutter 引擎/embedding 仓库(与 FLUTTER_STORAGE_BASE_URL 一致,本环境为国内镜像) maven { url "${System.getenv('FLUTTER_STORAGE_BASE_URL') ?: 'https://storage.googleapis.com'}/download.flutter.io" } google() mavenCentral() } } include ":app"