Flutter 3.7.9升级后Android端无法运行的问题求助
解决Flutter 3.7.9升级后Android端运行失败问题
一、先解决Kotlin Gradle插件依赖解析问题
Flutter 3.7.x对Kotlin版本有明确要求,同时device_info_plus 8.x也需要适配更高版本的Kotlin插件,你当前Gradle 6.5 + Java 8的组合无法兼容Kotlin 1.7.22,先调整Android项目配置:
- 打开
android/build.gradle,修改Kotlin版本为指定值:ext.kotlin_version = '1.7.22' - 检查buildscript的仓库配置,确保添加
mavenCentral(),否则无法拉取Kotlin插件:buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.0.4" // 与Gradle 7.0.1匹配的插件版本 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
二、修正Gradle与Java版本不匹配问题
升级Gradle到7.0.1后必须搭配Java 11使用,系统仍识别Java 8是因为环境配置未切换,按以下步骤处理:
- 指定项目Java版本:打开
android/app/build.gradle,在android代码块中添加:compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' } - 切换IDE的JDK环境:如果使用Android Studio,进入
File > Project Structure > SDK Location,将JDK Location改为Java 11的安装路径。 - 修正系统环境变量:检查
JAVA_HOME是否指向Java 11安装目录,同时将Java 11的bin目录移到PATH环境变量最前端,确保优先识别新版本。
三、修复device_info_plus配置问题
升级到device_info_plus 8.1.0后,执行以下操作确保依赖配置正确:
- 执行
flutter clean清除缓存,再运行flutter pub get重新拉取依赖 - 检查
android/app/src/main/AndroidManifest.xml,移除重复或无效的权限配置(device_info_plus 8.x无需额外权限)
四、验证Gradle升级生效
执行以下命令确认版本匹配:
./gradlew --version
输出需显示Gradle版本为7.0.1,JVM版本为11.x。若仍显示Java 8,需重新检查环境变量或IDE配置。
五、降级适配(以上步骤无效时)
若问题仍存在,可先降级到兼容组合,让项目先运行再逐步升级:
- 修改
ext.kotlin_version = '1.6.21'(兼容Gradle 6.5和Java 8) - 修改
pubspec.yaml中依赖为device_info_plus: ^4.0.0 - 执行
flutter clean && flutter pub get && ./gradlew clean
内容的提问来源于stack exchange,提问作者Nikko
相关产品推荐
相关产品推荐

