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
解决办法
升级shared_preferences版本
当前使用的2.3.3版本较旧,可能与Flutter 3.5.4存在兼容性问题,建议升级到最新稳定版:
修改pubspec.yaml中依赖:shared_preferences: ^2.20.0执行
flutter pub get更新依赖。适配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清理缓存重建项目
执行以下命令彻底清理缓存后重新构建:flutter clean rm -rf android/.gradle flutter pub get flutter run检查Android Studio JDK配置
打开Android Studio,进入File > Project Structure > SDK Location,确认JDK选择Android Studio自带版本,避免系统JDK导致兼容性问题。
内容的提问来源于stack exchange,提问作者Divya Rathod

