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 }() includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } } plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "9.0.1" apply false id "org.jetbrains.kotlin.android" version "2.3.20" apply false } include ":app" // ============================================================ // 【Gradle 兼容补丁】flutter_inappwebview_android 1.1.3 的 AGP 9 兼容问题 // // 问题:AGP 9 不支持 proguard-android.txt,必须用 proguard-android-optimize.txt。 // 插件 build.gradle 写死了 proguard-android.txt → Gradle 解析时就报错 // (debug 构建也炸,因为 AGP 9 在解析阶段就校验了这个方法调用)。 // // 修复:在 Gradle 解析插件 build.gradle 之前(beforeProject 钩子), // 把插件文件里的字符串替换掉。这个钩子比 Gradle 自带机制还早触发, // 所以能赶在 Gradle 报错前修好。 // // 优势: // - Gradle 原生,不依赖 Python/PowerShell // - 跨平台(Windows/Mac/Linux,Gradle 必备) // - 所有同事拉代码后自动生效 // - Gradle daemon 每次构建都会重新解析 build.gradle,不会有缓存问题 // ============================================================ gradle.beforeProject { Project project -> if (project.name == 'flutter_inappwebview_android') { def gradleFile = project.file('build.gradle') def text = gradleFile.text if (text.contains("proguard-android.txt")) { gradleFile.text = text.replace( "proguard-android.txt", "proguard-android-optimize.txt" ) println "✅ Patched flutter_inappwebview_android/build.gradle (AGP 9 compat)" } } }