Flutter Debug模式正常但Release模式UI消失无响应问题求助
问题:Flutter Release模式UI消失且报Kotlin版本不兼容错误
- Debug模式下UI显示正常,切换到Release模式后UI完全消失,无触摸响应
- Release模式编译报错:
Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0 - 已尝试修改
settings.gradle中org.jetbrains.kotlin.android版本为1.7.10、1.8.0、1.6.0,均无效;新建项目也出现相同问题
环境配置
pubspec.yaml依赖
get: ^4.6.6 camera: ^0.10.5+9 permission_handler: ^11.3.0 google_fonts: ^6.1.0 image_picker: ^1.0.7 tflite_v2: ^1.0.0 animated_text_kit: ^4.2.2 share_plus: ^7.2.2 screenshot: ^2.1.0 flutter_native_splash: ^2.3.13 google_mobile_ads: ^4.0.0 change_app_package_name: ^1.1.0
Android plugins配置
plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.3.0" apply false id "org.jetbrains.kotlin.android" version "1.7.10" apply false }
Android项目配置
android { compileSdk 34 minSdkVersion 28 }
Flutter环境信息
- Flutter (稳定通道, 3.19.4, Windows 10.0.19045.4170, 韩语区域)
- Android工具链:Android SDK版本34.0.0
- 支持Web开发(Chrome)
- [!] Visual Studio 2022 17.7.3:缺少必要组件,需安装「使用C++的桌面开发」工作负载,包含:
- MSVC v142 - VS 2019 C++ x64/x86构建工具(安装最新版本)
- Windows的C++ CMake工具
- Windows 10 SDK
- Android Studio 2022.3
- VS Code 1.87.2
- 已连接3台设备
解决方案
统一项目Kotlin版本
仅修改settings.gradle不够,需确保app/build.gradle中应用的Kotlin版本与插件版本一致:// app/build.gradle顶部 plugins { id 'com.android.application' id 'kotlin-android' id 'dev.flutter.flutter-gradle-plugin' } // 匹配settings.gradle中的Kotlin版本 kotlin { jvmToolchain(17) // Android Gradle插件7.3.0推荐搭配JDK17 }强制统一依赖Kotlin版本
部分第三方依赖可能内置高版本Kotlin编译代码,可在settings.gradle中强制统一:dependencyResolutionManagement { resolutionStrategy { eachDependency { details -> if (details.requested.group == 'org.jetbrains.kotlin') { details.useVersion '1.8.0' } } } }彻底清理构建缓存
执行以下命令后重新构建Release版本:flutter clean ./gradlew clean ./gradlew build --refresh-dependencies flutter build apk --release检查Android Gradle插件与Kotlin兼容性
Android Gradle插件7.3.0兼容Kotlin 1.7.x版本,调整settings.gradle插件版本:plugins { id "com.android.application" version "7.3.0" apply false id "org.jetbrains.kotlin.android" version "1.7.20" apply false }修复Release模式混淆问题
UI消失可能是混淆导致,在app/proguard-rules.pro中添加保留规则:-keep class 你的包名.** { *; } -keep class io.flutter.** { *; } -keep class io.flutter.plugins.** { *; }
内容的提问来源于stack exchange,提问作者mark
相关产品推荐
相关产品推荐

