Flutter配置环境报错“PKIX unable to find valid certification path to requested target”

背景:最近看了很多Flutter漂亮的项目,想要尝试一下。所有环境都搭建好之后,按照文档一步一步配置(抄袭),但始终报如下图错误。

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

找不到所请求目标的有效证书路径

 

起初以为只是Flutter有这个问题,一想到和Android有关,马上回想起之前的Ionic项目,进行打包看看有没有同样的问题。果然,Ionic运行后也出现一模一样的情况,瞬间头都大了。

 

看问题描述像是Java的问题,可是没接触过Java咋办,只能查阅资料

上述问题经过无数次百度,Google,博客园,CSDN,Stack Overflow各种资料的查阅(近两年的问答都看完了,真心酸)。

尝试导入过证书,修改过阿里云仓库地址,更换代理,甚至重装

以上内容通通试了个遍

很遗憾没有一种方式能够解决。

 

经过将近十天的各种折腾,终于在某个下午做完工作后,突然脑子里灵光一闪,逐步分析排查并摸索(瞎整)出了解决问题的办法,特此分享给遇到同样问题的朋友们。

 

首先,通过Android Studio打开Flutter项目中的android文件夹

 

如果是初次打开,编译器会自动对相关package进行下载,然后就会报上面的错误,因此可以定位问题和这个文件夹内的东西有关。

不要慌,发现问题我们才好解决。点开上方菜单栏 “File-Projet Structure”对话框,这里是解决问题的主战场。

SDK Location,用于配置Android SDK和Java JDK,Android Studio默认使用自己的JDK,这里可以改成我们自己安装的Java JDK(这一步可以忽略)。

 

接下来,我们打开Dependencies窗口,选中app一栏。可以看到很多带波浪线的依赖,强迫症请点击下方[Update](这一步也可以忽略)

 

接下来是真正解决问题的步骤了,

请耐心看!

耐心看!!

耐心看!!!

我们回到之前的报错信息,虽然错误信息报的是安全信息的问题,但是我们通过浏览器却可以打开这个地址,我们把缺失的包下载到本地(网络问题请尝试多次下载)

PS:每个人的包名可能不一样

 

 

下载好之后,我们回到刚才的依赖管理界面,点击上方的“+”,选择“Jar Dependency”。将我们下载好的包的地址填写进去,并点击OK

 

 

 

此时会再一次进行同步,同步完成后有可能依旧报错,但是发现这次报错的包是另外一个名字,我们再次下载到本地并手动添加依赖。请重复上述操作,直到不缺失任何东西

 

添加完所有的本地包之后,可以看到下方的Buid信息一直在进行下载,打开网络监控发现凶手果然是java.exe,由于是去国外下载请耐心等待。

经过十分钟漫长的等待,终于完完全全的Build完毕,并且没有报任何错误了!(此时我都想放鞭炮大摆宴席了,但是习主席说过绿水青山就是金山银山,我们听主席的教诲做合格党员,保护环境人人有责)

 

此时,我们回到上一层的Flutter项目,准备Run !

终于在模拟器上看到了漂亮的界面,大功告成!

守得云开见月明,这十多天的折磨,终于自己摸索出了解决方案,感觉头都要秃了。

希望我的方法能够解决到你的问题,让你少掉点头发。

PS:晚上奖励自己两碗饭。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章