问题现象:
A cryptographic error occurred while checking "https://pub.flutter-io.cn": Handshake error in client
You may be experiencing a man-in-the-middle attack, your network may be compromised, or you may have malware
installed on your computer
问题分析与定位
分析
1、怀疑镜像原因:看字面意思是因为https://pub.flutter-io.cn证书握手原因,一开始以为是镜像https://pub.flutter-io.cn,然后换成了上海、清华的镜像还是一样的问题。——》非镜像原因
2、怀疑公司网络问题:一顿操作,换成手机共享的wifi也是一样 ——》非公司网络问题
3、怀疑缓存问题:一顿flutter clean; dart pub cache repair 下来,把自己的flutter环境搞出了问题 ——》 非缓存问题
4、网上各种找原因,结果定位到是maven镜像问题:
flutter 3.10.5 安装问题
解决方案
1、修改flutter maven镜像
打开http_host_validator.dart文件
(flutter跟目录\packages\flutter_tools\lib\src\http_host_validator.dart,比如:E:\enviroment\flutter\packages\flutter_tools\lib\src\http_host_validator.dart)
修改kMaven 的地址为https://maven.aliyun.com/repository/google,如下所示:
/// Common Flutter HTTP hosts.
const String kCloudHost = 'https://storage.googleapis.com/';
const String kCocoaPods = 'https://cocoapods.org/';
const String kGitHub = 'https://github.com/';
//const String kMaven = 'https://maven.google.com/';
const String kMaven = 'https://maven.aliyun.com/repository/google';
const String kPubDev = 'https://pub.dev/';
2、删除flutter bin cache
删除: flutter跟目录\bin\cache (比如:E:\enviroment\flutter\bin\cache)
3、命令行重新执行 flutter doctor
以上一切准备就绪,以为一切都ok时,然而编译项目时,报如下错误:
Building with plugins requires symlink support.
Please enable Developer Mode in your system settings. Run
start ms-settings:developers
to open settings.
exit code 1
* What went wrong:
Execution failed for task ':app:compileReleaseKotlin'.
> Error while evaluating property 'filteredArgumentsMap' of task ':app:compileReleaseKotlin'.
> Could not resolve all files for configuration ':app:releaseCompileClasspath'.
> Failed to transform flutter.jar to match attributes {artifactType=android-classes-jar, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
> Execution failed for JetifyTransform: E:\enviroment\flutter\bin\cache\artifacts\engine\android-arm64\flutter.jar.
> Transform's input file does not exist: E:\enviroment\flutter\bin\cache\artifacts\engine\android-arm64\flutter.jar. (See https://issuetracker.google.com/issues/158753935)
分析:看日志是找不到android-arm
Transform's input file does not exist: E:\enviroment\flutter\bin\cache\artifacts\engine\android-arm64\flutter.jar
解决方案:
下载android-arm相关,命令行执行:flutter precache
最后重新编译项目,解决问题