問題現(xiàn)象:
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,然后換成了上海、清華的鏡像還是一樣的問題?!贩晴R像原因
2、懷疑公司網絡問題:一頓操作,換成手機共享的wifi也是一樣 ——》非公司網絡問題
3、懷疑緩存問題:一頓flutter clean; dart pub cache repair 下來,把自己的flutter環(huán)境搞出了問題 ——》 非緩存問題
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、命令行重新執(zhí)行 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相關,命令行執(zhí)行:flutter precache
最后重新編譯項目,解決問題