flutter A cryptographic error occurred while checking "https://pub.flutter-io.cn": Handshake erro...

问题现象:

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

最后重新编译项目,解决问题

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容