plugins { id("com.android.application") // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } android { namespace = "cn.shengshentech.changlian" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "cn.shengshentech.changlian" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } // 压缩打包 .so(默认未压缩存储,OpenIM/WebRTC 的 native 库让包多占近一倍体积); // 代价是安装时多解压一次,对内网分发来说体积更关键。 packaging { jniLibs { useLegacyPackaging = true } } buildTypes { release { // OpenIM 插件靠反射按字段名分发方法调用,R8/混淆会把字段改名导致 // 所有 SDK 调用静默无响应(表现为 initSDK 永久不返回)。 // 与官方样板工程一致:release 关闭混淆和资源压缩。 isMinifyEnabled = false isShrinkResources = false // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig = signingConfigs.getByName("debug") } } } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 } } flutter { source = "../.." } // livekit_client 插件硬编码 compileSdk = 34,但它依赖的 flutter_webrtc 要求消费者 ≥36, // AAR 元数据校验会因此失败。:app 先于各插件求值(根脚本有 evaluationDependsOn(":app")), // 所以在插件求值完成后把它的 compileSdk 抬到 36。 rootProject.subprojects { if (name == "livekit_client") { afterEvaluate { extensions.configure { compileSdk = 36 } } } }