Android Studio运行Flutter安卓应用遇SDK兼容警告及蓝屏问题求助
Flutter应用运行警告及蓝屏问题解决方案
环境信息
Flutter 3.27.3 • channel stable • https://github.com/flutter/flutter.git Framework • revision c519ee916e (3周前) • 2025-01-21 10:32:23 -0800 Engine • revision e672b006cb Tools • Dart 3.6.1 • DevTools 2.40.2 Android toolchain - develop for Android devices (Android SDK version 35.0.1) Android SDK at C:\Users\marti\AppData\Local\Android\sdk Platform android-35, build-tools 35.0.1 Java binary at: C:\Program Files\Java\jdk-20\bin\java Java version Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286) All Android licenses accepted.
问题描述
运行Flutter安卓应用时触发以下警告:
"Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times." warning: [options] source value 8 is obsolete and will be removed in a future release warning: [options] target value 8 is obsolete and will be removed in a future release warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
忽略警告启动应用会出现蓝屏。已尝试修改Android SDK Build Tools版本匹配模拟器SDK,且因Java 21与Gradle兼容问题,已下载Java 17并执行命令:
flutter config --jdk-dir= "C:\Program Files\Java\jdk-17"
解决方案
一、修复警告及蓝屏问题
- 同步Android Studio与命令行工具版本:SDK XML版本不匹配是因为Android Studio和SDK命令行工具版本不一致。打开Android Studio的
SDK Manager,进入SDK Tools标签,勾选Show Package Details,将Android SDK Command-line Tools (latest)更新到与Android Studio版本匹配的版本,重启IDE后再尝试构建。 - 统一项目Java版本配置:虽然已设置Flutter的JDK路径,但需确保项目Gradle配置同步使用Java 17:
- 打开项目根目录下的
android/gradle/wrapper/gradle-wrapper.properties,将Gradle版本更新为支持Java 17的版本(例如gradle-8.7-all.zip,需与Flutter 3.27.x兼容)。 - 修改
android/build.gradle中的构建脚本配置,确保使用兼容的Gradle插件和Kotlin版本:buildscript { ext.kotlin_version = '1.9.20' repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:8.3.2" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() mavenCentral() } } - 在
android/app/build.gradle中明确指定Java编译版本:android { compileSdk 35 defaultConfig { // 保留你项目的原有配置,如applicationId、minSdk等 targetSdk 35 } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } }
- 打开项目根目录下的
- 清理缓存后重新构建:执行以下命令清除项目缓存,避免旧配置干扰:
flutter clean cd android && gradlew clean cd .. && flutter pub get flutter run
二、flutter config中SDK路径相关问题
- 路径设置的重要性:很关键。如果Flutter无法自动检测到Android SDK路径,会直接导致编译失败。手动设置后,Flutter可以精准调用指定SDK的资源,避免版本不匹配或路径找不到的问题。
- 留空的处理逻辑:若未设置,Flutter会尝试自动检测系统默认路径:Windows下为
C:\Users\<你的用户名>\AppData\Local\Android\sdk,macOS为~/Library/Android/sdk,Linux为~/Android/Sdk。但如果默认路径被修改过,或者自动检测失败,就必须手动指定路径才能正常编译。
内容的提问来源于stack exchange,提问作者MicroMartin
相关产品推荐
相关产品推荐

