解决flutter:unable to find valid certification path to requested target 的问题
1、问题
周末在家想搞搞flutter,家里电脑是windows的,按照官网教程一步步安装好以后,创建flutter工程,点击运行,一片红色弹出来,WTF?
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2、尝试
(1)导入证书
https://blog.csdn.net/frankcheng5143/article/details/52164939
第一次遇到这个问题,上网查了下,基本都说是证书问题,但是我用浏览器是可以正常打开这些网址的,也按照网上的解决方案导入了证书,然而还是不行,不清楚是不是哪里做错了。
(2)手动下载
尝试手动下载gradle,放到对应目录,然后flutter顺利通过了gradle初始化这一步,最后卡在了依赖包下载...还是相同的问题。
gradle下载地址:http://services.gradle.org/distributions/
PS:这里说明一下,如果android studio里面修改了gradle的默认位置,需要注意,flutter读取的还是C盘下那个默认的.gradle路径,而不是studio里面设置的路径。能不能改我也不太清楚,如果要手动下载,需要放到C盘。
(3)国内镜像
再试试国内镜像,在gradle添加了阿里的镜像地址:
maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
OK,还是不行。
(4)https http
https://blog.csdn.net/codekxx/article/details/82726709?tdsourcetag=s_pcqq_aiomsg
既然是SSL的问题,再试一下把https改为http,点击运行,仍然报错。不过细心看下,发现报错的包不同了,意思是刚刚的包应该下载成功了?有戏!
3、我的解决方法
结合上面第四种方法,再结合最后看的一个方法:https://github.com/flutter/flutter/issues/23404?tdsourcetag=s_pcqq_aiomsg
最后把gradle的repo改为了:
maven {
url 'https://dl.google.com/dl/android/maven2'
}
jcenter{
url 'http://jcenter.bintray.com'
}
google()
并且,flutter sdk下还有个gradle也要改:
flutter\packages\flutter_tools\gradle\flutter.gradle
而且,这样还不行!!! 需要用android studio打开flutter工程的android目录,然后点击gradle同步,等下载完成以后,再回到flutter工程,点击运行,终于可以了。。。
如果大家有什么更好的解决方法,希望能交流一下~
本文作学习交流用,如有错误,欢迎指正!