Flutter集成open_filex报错:配置项目':open_filex'失败
问题描述
在Flutter应用中使用open_filex包时出现以下错误:
* 出错原因: 配置项目 ':open_filex' 时出现问题。 > 无法为配置 ':open_filex:classpath' 解析所有文件。 > 无法下载 gradle-4.1.3.jar (com.android.tools.build:gradle:4.1.3) > 无法获取资源 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.3/gradle-4.1.3.jar'。 > 无法 GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.3/gradle-4.1.3.jar'。 > 服务器可能不支持客户端请求的TLS协议版本: (TLSv1.2, TLSv1.3)。你可能需要配置客户端以允许使用其他协议。 > PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException: 无法找到请求目标的有效证书路径
已尝试清理缓存但无效,以下是android目录下的build.gradle文件:
buildscript { ext.kotlin_version = '1.7.10' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.0' // START: FlutterFire 配置 classpath 'com.google.gms:google-services:4.3.10' // END: FlutterFire 配置 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') } task clean(type: Delete) { delete rootProject.buildDir }
Flutter Doctor检测结果:
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (稳定通道, 3.7.1, macOS 13.0.1 22A400 darwin-x64, 语言区域 en-GH) [✓] Android 工具链 - 开发 Android 设备(Android SDK 版本 33.0.1) [✓] Xcode - 开发 iOS 和 macOS(Xcode 14.1) [✓] Chrome - 开发 web 应用 [✓] Android Studio(版本 2021.3) [✓] VS Code(版本 1.78.2) [✓] 已连接设备(2 台可用) [✓] HTTP 主机可用性 • 未发现问题!
解决方法
1. 强制子项目使用统一Gradle版本
open_filex依赖的Gradle 4.1.3版本过旧,和项目使用的7.2.0版本不兼容,且旧版本易出现TLS/证书问题。在android/build.gradle中添加配置,强制open_filex使用项目指定的Gradle插件版本:
在现有subprojects块后新增以下内容:
subprojects { if (project.name.startsWith('open_filex')) { buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.0' } } } }
2. 更新open_filex到最新版本
旧版本open_filex可能依赖过时的Gradle配置,执行命令升级包:
flutter pub upgrade open_filex
3. 修复证书信任问题(若上述方法无效)
- 打开Android Studio,进入
File > Settings > Tools > Server Certificates,勾选Accept non-trusted certificates automatically,然后重新同步项目。 - 或手动导入证书:访问
https://dl.google.com导出SSL证书,通过keytool命令导入到Java信任库:
信任库默认密码为keytool -importcert -file 你的证书路径.cer -keystore 本地Java环境路径/jre/lib/security/cacerts -alias google_dlchangeit。
4. 彻底清理缓存并重建
执行以下命令清理所有缓存后重新构建:
flutter clean rm -rf android/.gradle android/build ios/.symlinks ios/Pods ios/Runner.xcworkspace flutter pub get flutter run
内容的提问来源于stack exchange,提问作者Samuel
相关产品推荐
相关产品推荐

