使用Shared Preferences 2.1.0后Android环境Gradle配置报错
错误日志
What went wrong: A problem occurred configuring project ':shared_preferences_android'. > Could not load compiled classes for build file 'C:\Users\rakhtama\AppData\Local\Pub\Cache\hosted\pub.dev\shared_preferences_android-2.1.0\android\build.gradle' from cache. > Failed to notify project evaluation listener. > Could not get unknown property 'android' for project ':shared_preferences_android' of type org.gradle.api.Project. > Could not get unknown property 'android' for project ':shared_preferences_android' of type org.gradle.api.Project.
相关文件内容
1. shared_preferences_android-2.1.0的build.gradle
group 'io.flutter.plugins.sharedpreferences' version '1.0-SNAPSHOT' buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.2' } } rootProject.allprojects { repositories { google() mavenCentral() } } allprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } } apply plugin: 'com.android.library' android { compileSdkVersion 33 defaultConfig { minSdkVersion 16 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } lintOptions { disable 'AndroidGradlePluginVersion', 'InvalidPackage', 'GradleDependency' baseline file("lint-baseline.xml") } dependencies { testImplementation 'junit:junit:4.13.2' testImplementation 'org.mockito:mockito-inline:5.0.0' } testOptions { unitTests.includeAndroidResources = true unitTests.returnDefaultValues = true unitTests.all { testLogging { events "passed", "skipped", "failed", "standardOut", "standardError" outputs.upToDateWhen {false} showStandardStreams = true } } } }
2. 项目/android/gradle/wrapper/gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
3. 项目/android/build.gradle
buildscript { ext.kotlin_version = '1.7.10' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }
4. 项目/android/gradle.properties
org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true
5. pubspec.yaml
name: your_project_name description: A new Flutter project. publish_to: 'none' version: 1.0.0+1 environment: sdk: '>=2.18.6 <3.0.0' dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 shared_preferences: ^2.1.0 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 flutter: uses-material-design: true
已尝试操作
- 执行
flutter clean - 执行
.\gradlew clean build
解决措施
1. 对齐Gradle插件与Gradle版本兼容性
shared_preferences_android-2.1.0依赖的Android Gradle插件版本为7.2.2,而项目根配置的是7.2.0,同时Gradle版本7.5与7.2.0插件不兼容(官方兼容表中7.2.x插件对应Gradle 7.3)。可二选一调整:
- 调整项目插件版本:修改项目/android/build.gradle中的插件版本为7.2.2,与依赖库一致:
dependencies { classpath 'com.android.tools.build:gradle:7.2.2' // 其余依赖保持不变 } - 调整Gradle版本:修改gradle-wrapper.properties中的Gradle版本为7.3:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
2. 彻底清除Gradle缓存
仅执行flutter clean和gradlew clean不够,需手动删除全局Gradle缓存目录:
- 删除
C:\Users\rakhtama\.gradle\caches - 重新执行
flutter pub get和flutter run
3. 升级shared_preferences版本
若上述方案无效,升级到最新稳定版可修复兼容性问题:
- 修改pubspec.yaml中的依赖:
shared_preferences: ^2.2.2 # 替换为最新稳定版 - 执行
flutter pub upgrade
内容的提问来源于stack exchange,提问作者Rakha Wisesa Rozaqtama
相关产品推荐
相关产品推荐

