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

Flutter添加shared_preferences包后运行报错求助

Flutter项目集成shared_preferences后编译失败问题

我开发Flutter项目时需实现本地存储功能,按步骤添加了shared_preferences包(版本^2.3.3,已在pubspec.yaml的dependencies中显示),但执行flutter run时报错:

Execution failed for task ':shared_preferences_android:compileDebugJavaWithJavac'.
Could not resolve all files for configuration :shared_preferences_android:androidJdkImage.
Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.

已确认Android SDK为最新API 34版本,命令行工具也已更新,但问题仍未解决。

我的配置文件如下:

android/app/build.gradle

plugins {
    id "com.android.application"
    id "kotlin-android"
    // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
    id "dev.flutter.flutter-gradle-plugin"
}

android {
    namespace = "com.example.billionaireapp"
    compileSdk = flutter.compileSdkVersion
    ndkVersion = flutter.ndkVersion

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID
        applicationId = "com.example.billionaireapp"
        minSdk = flutter.minSdkVersion
        targetSdk = flutter.targetSdkVersion
        versionCode = flutter.versionCode
        versionName = flutter.versionName
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig = signingConfigs.debug
        }
    }
}

flutter {
    source = "../../"
}

pubspec.yaml

name: billionaireapp
description: "A new Flutter project."
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

version: 1.0.0+1

environment:
  sdk: ^3.5.4


dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.8
  shared_preferences: ^2.3.3

dev_dependencies:
  flutter_test:
    sdk: flutter

  flutter_lints: ^4.0.0

flutter:
  uses-material-design: true

解决办法

  1. 升级shared_preferences版本
    当前使用的2.3.3版本较旧,可能与Flutter 3.5.4存在兼容性问题,建议升级到最新稳定版:
    修改pubspec.yaml中依赖:

    shared_preferences: ^2.20.0
    

    执行flutter pub get更新依赖。

  2. 适配Gradle与Java版本
    检查项目根目录的build.gradle,确保Gradle插件版本与Java版本匹配:

    buildscript {
        ext.kotlin_version = '1.9.0'
        repositories {
            google()
            mavenCentral()
        }
    
        dependencies {
            classpath "com.android.tools.build:gradle:7.4.2"
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    

    同时确保gradle-wrapper.properties中的Gradle版本对应:

    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
    
  3. 清理缓存重建项目
    执行以下命令彻底清理缓存后重新构建:

    flutter clean
    rm -rf android/.gradle
    flutter pub get
    flutter run
    
  4. 检查Android Studio JDK配置
    打开Android Studio,进入File > Project Structure > SDK Location,确认JDK选择Android Studio自带版本,避免系统JDK导致兼容性问题。

内容的提问来源于stack exchange,提问作者Divya Rathod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:23:10