Flutter构建提示classpath中Runtime JAR文件版本不一致如何解决
问题修复方案
修复Kotlin版本不一致警告
该警告由项目依赖的不同三方库拉取了多版本Kotlin标准库导致,多个版本库同时打包也会导致APK体积增大,修复步骤如下:
- 打开项目
android目录下的根build.gradle文件,找到ext.kotlin_version字段,统一指定和当前Android Studio兼容的稳定版Kotlin版本,例如1.8.22。 - 在同个
build.gradle文件的allprojects代码块中添加全局版本约束,强制所有依赖使用统一的Kotlin版本:
allprojects { configurations.all { resolutionStrategy { // 强制所有Kotlin相关依赖使用统一版本 def kotlinVersion = rootProject.ext.kotlin_version force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion" force "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" force "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlinVersion" } } // 保留原有其他配置内容 }
- 执行
flutter clean清理项目缓存,删除android目录下的.gradle缓存文件夹后重新构建,该警告即可消除。
修复APK体积异常增大问题
更新Flutter后默认打包配置变化、多架构库合并打包、未开代码压缩等都会导致体积翻倍,优化步骤如下:
- 按ABI拆分打包,不要生成通用APK。执行打包命令时使用
flutter build apk --split-per-abi,生成的arm64-v8a架构APK适配绝大多数现代安卓设备,体积比包含多架构的通用包小50%左右。 - 开启代码混淆和资源压缩,打开
android/app目录下的build.gradle文件,修改release构建类型配置:
buildTypes { release { minifyEnabled true // 开启代码混淆、压缩 shrinkResources true // 自动删除未使用的资源文件 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 保留原有签名等其他配置 } }
- 条件允许的前提下完成项目空安全迁移,未开启sound null safety的构建会打包额外的兼容代码,也会占用一定体积。
内容的提问来源于stack exchange,提问作者Ahmet Aydemir
相关产品推荐
相关产品推荐

