引入qr_code_scanner包后Flutter项目构建失败求助
在Flutter项目的pubspec.yaml中添加qr_code_scanner: ^1.0.1依赖后,项目构建失败,报错信息如下:
A build operation failed.
Could not resolve all files for configuration ':qr_code_scanner:coreLibraryDesugaring'.
Could not resolve all files for configuration ':qr_code_scanner:coreLibraryDesugaring'.
Failed to transform desugar_jdk_libs-1.2.0.jar (com.android.tools:desugar_jdk_libs:1.2.0) to match attributes {artifactType=_internal-desugar-lib-lint, lint-compile-sdk=32, lint-min-sdk=20, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime}.
Could not find desugar_jdk_libs-1.2.0.jar (com.android.tools:desugar_jdk_libs:1.2.0).
Searched in the following locations:
https://dl.google.com/dl/android/maven2/com/android/tools/desugar_jdk_libs/1.2.0/desugar_jdk_libs-1.2.0.jar
当前环境信息:
- Gradle版本:7.6-all.zip
- Gradle工具版本:7.1.2
- Flutter版本:3.13.6(稳定通道)
以下是几种可行的解决方法:
1. 更新qr_code_scanner依赖版本
旧版本的qr_code_scanner可能存在依赖兼容问题,尝试将依赖升级到较新的稳定版本,修改pubspec.yaml中的依赖声明:
dependencies: qr_code_scanner: ^1.0.2 # 或更高兼容版本
执行flutter pub get同步依赖后重新构建。
2. 配置国内Gradle镜像源
无法下载jar包大概率是网络或镜像源问题,在项目的android/build.gradle文件中,修改allprojects下的仓库配置,添加国内镜像:
allprojects { repositories { google() mavenCentral() maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } } }
3. 调整Gradle工具与Gradle版本的兼容性
当前Gradle版本7.6和工具版本7.1.2可能存在适配问题,建议将Gradle工具版本升级到7.4+,修改android/build.gradle中的buildscript部分:
buildscript { ext.kotlin_version = '1.7.10' // 确保Kotlin版本与Gradle工具兼容 repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 替换为兼容的Gradle工具版本 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
同时,确保android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl与Gradle工具版本匹配,比如7.4.2工具对应Gradle 7.5版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
4. 清理缓存并重新构建
执行以下命令彻底清理缓存后重新构建项目:
flutter clean flutter pub get cd android && gradlew clean build --refresh-dependencies cd .. && flutter run
内容的提问来源于stack exchange,提问作者MehdiAbolhassani

