Files
App.K12.Student.Miniapp_Flu…/android/settings.gradle
T
2026-09-09 16:12:59 +08:00

56 lines
2.1 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)"
}
}
}