You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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:
    1. 打开项目根目录下的android/gradle/wrapper/gradle-wrapper.properties,将Gradle版本更新为支持Java 17的版本(例如gradle-8.7-all.zip,需与Flutter 3.27.x兼容)。
    2. 修改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()
          }
      }
      
    3. 在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:48:21