Flutter项目调用API时模拟器暂停,需点击继续才出结果,浏览器无此问题
Flutter模拟器调用API后自动暂停的解决办法
下面是针对这个问题的几种常见排查和解决思路:
调试器异常拦截设置问题
模拟器的调试器默认会拦截所有异常(包括已捕获的),而浏览器调试环境可能默认只关注未捕获异常。可以调整调试器的断点规则:- Android Studio:打开「Run > View Breakpoints」,取消勾选「All Exceptions」,只保留「Uncaught Exceptions」。
- VS Code:在项目的
.vscode/launch.json中,修改exceptionBreakpoints配置为["uncaught"],避免调试器因捕获到已处理的API异常而暂停。
HTTPS证书校验触发暂停
模拟器对HTTPS证书的校验比浏览器严格,若API使用自签名证书或无效证书,会触发调试器暂停。可以临时关闭证书校验(仅用于测试环境,上线务必恢复):- Android端:在
android/app/src/main/AndroidManifest.xml的<application>标签内添加android:usesCleartextTraffic="true"。 - 全局忽略证书:通过
HttpOverrides重写证书校验逻辑,代码示例:class MyHttpOverrides extends HttpOverrides { @override HttpClient createHttpClient(SecurityContext? context) { return super.createHttpClient(context) ..badCertificateCallback = (X509Certificate cert, String host, int port) => true; } } void main() { HttpOverrides.global = MyHttpOverrides(); runApp(const MyApp()); }
- Android端:在
残留断点干扰
检查代码中是否存在未移除的断点,尤其是API请求的回调、catch块或网络请求工具类里的断点。直接清空所有无关断点后重新运行即可。模拟器与调试器连接不稳定
尝试重启模拟器和IDE,或者执行flutter clean后重新构建项目,解决可能的进程冲突或连接异常问题。
内容的提问来源于stack exchange,提问作者Alireza Ghaznavi
相关产品推荐
相关产品推荐

