Flutter项目构建APK失败:Manifest合并及编译兼容性问题求助
Flutter Android APK构建错误解决指南
环境信息
- Flutter版本:3.24.3(稳定通道,运行于macOS 14.6.1)
- Android SDK版本:35.0.0
- Java版本:OpenJDK 17.0.11 + Oracle JDK 22.0.2
翻译后的错误列表
- 任务执行停滞,无法启动队列任务
:open_filex:processDebugAndroidTestManifest任务失败:Manifest合并失败,minSdkVersion 16 小于依赖库要求的19:geolocator_android:processDebugAndroidTestManifest任务失败:同类型Manifest合并minSdk不兼容问题:flutter_svprogresshud:checkDebugAndroidTestAarMetadata任务失败:依赖库要求compileSdk至少34,但当前为28,存在20项元数据问题:flutter_svprogresshud:processDebugAndroidTestManifest任务失败:Manifest合并minSdk不兼容:app:checkDebugAarMetadata任务失败:qr_code_scanner要求启用核心库脱糖:qr_code_scanner:compileDebugKotlin任务失败:Java与Kotlin的JVM目标版本不一致(1.8 vs 17)
解决方法
一、统一项目Android核心配置
1. 同步compileSdk、minSdk、targetSdk版本
修改android/app/build.gradle:
android { compileSdk 35 // 匹配已安装的Android SDK 35.0.0 defaultConfig { minSdkVersion 21 // 覆盖依赖库最低要求,至少高于19;正式环境建议设为21及以上 targetSdkVersion 35 // 保留原有其他配置 } }
2. 统一JVM目标版本
在android/app/build.gradle的android块内添加:
kotlinOptions { jvmTarget = '17' // 与Java版本统一,避免版本冲突 }
同时修改gradle.properties:
org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true kotlin.jvm.target=17
3. 更新Gradle版本
修改gradle-wrapper.properties的distributionUrl:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip // 适配Flutter 3.24.x的推荐版本
二、逐个解决特定错误
1. Manifest合并minSdk不兼容(错误2、3、5)
- 优先方案:升级依赖库到最新兼容版本,修改
pubspec.yaml:
dependencies: open_filex: ^最新版本 geolocator_android: ^最新版本 flutter_svprogresshud: ^最新版本
- 临时方案:若无法升级依赖,在
android/app/build.gradle中强制覆盖测试依赖的minSdk:
android { configurations.all { resolutionStrategy.eachDependency { details -> def depName = details.requested.name if (['open_filex', 'geolocator_android', 'flutter_svprogresshud'].contains(depName)) { details.useVersion(details.requested.version) // 强制设置minSdk details.because = "Force minSdk to match project's minSdk" } } } }
2. compileSdk版本过低(错误4)
确保项目根目录build.gradle的版本配置统一:
buildscript { ext { compileSdkVersion = 35 minSdkVersion = 21 targetSdkVersion = 35 } }
3. 启用核心库脱糖(错误6)
修改android/app/build.gradle:
android { compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' }
4. JVM目标版本不一致(错误7)
在项目根目录build.gradle中全局统一Kotlin JVM目标:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { kotlinOptions { jvmTarget = '17' } } } } }
5. 任务执行停滞(错误1)
- 执行
flutter clean,手动删除android/.gradle、android/app/build目录 - 重启开发工具,关闭后台占用资源的程序
- 调整
gradle.properties内存分配:
org.gradle.jvmargs=-Xmx2048M -XX:MaxMetaspaceSize=512M
三、验证步骤
- 执行
flutter pub get更新依赖 - 执行
flutter build apk --debug测试构建 - 若仍有错误,排查
pubspec.yaml中未更新的旧依赖,替换为兼容Flutter 3.24.x的版本
内容的提问来源于stack exchange,提问作者Ishaq Moutanabi Benaissa
相关产品推荐
相关产品推荐

