.NET MAUI安卓模拟器对接Web API遇SSL及依赖问题求助
解决.NET MAUI安卓模拟器连接Web API的SSL握手及包缺失问题
报错信息
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
问题背景
对接Web API与.NET MAUI时,出现SSL握手错误、引用问题及运行时包缺失,需实现安卓模拟器与Web API的正常连接。
解决方案
一、修复SSL握手错误
如果Web API使用自签名HTTPS证书,安卓模拟器默认会拒绝信任,可通过以下两种方式处理:
- 方式1:添加证书到系统信任(推荐开发/测试环境)
- 导出Web API的证书为
.cer格式(可通过浏览器导出站点证书) - 将证书推送到安卓模拟器的
/system/etc/security/cacerts/目录,执行命令设置权限:adb push your-cert.cer /system/etc/security/cacerts/ && adb shell chmod 644 /system/etc/security/cacerts/your-cert.cer - 重启模拟器后,系统会信任该证书
- 导出Web API的证书为
- 方式2:临时跳过SSL验证(仅开发环境,生产禁用)
在Platforms/Android/MainApplication.cs的OnCreate方法中添加代码:public override void OnCreate() { base.OnCreate(); ServicePointManager.ServerCertificateValidationCallback += (_, _, _, _) => true; }
二、解决引用及运行时包缺失问题
- 检查NuGet包:右键项目→管理NuGet包,确保
Microsoft.Maui.Controls、Microsoft.Extensions.Http等依赖包已安装,且版本与项目的.NET MAUI版本匹配 - 清理并重建项目:执行命令
dotnet clean→dotnet restore→dotnet build,清除缓存并重新加载依赖 - 验证模拟器运行时:打开Visual Studio Installer,确认
.NET MAUI相关组件已安装,且模拟器已部署对应版本的.NET运行时
三、连接测试要点
安卓模拟器访问本地Web API时,需将localhost替换为10.0.2.2(安卓模拟器的回环地址映射),确保API地址可访问。
内容的提问来源于stack exchange,提问作者ELANGOVAN D
相关产品推荐
相关产品推荐

