VSCode调试Flutter Android真机卡在黑屏,模拟器运行正常
Flutter应用在Vivo T2X 5G(Android 13)真机黑屏,模拟器正常运行
调试Flutter应用时,在**Vivo T2X 5G(Android 13版本)**真机上启动后卡在黑屏状态,但Android模拟器中可正常运行。

调试日志
I/flutter (19963): The Dart VM service is listening on ************************************ D/FlutterGeolocator(19963): Creating service. D/FlutterGeolocator(19963): Binding to location service. D/FlutterGeolocator(19963): Geolocator foreground service connected D/FlutterGeolocator(19963): Initializing Geolocator services D/FlutterGeolocator(19963): Flutter engine connected. Connected engine count 1
解决步骤
补全位置权限配置:
Android 13对位置权限管控更严格,确保AndroidManifest.xml中添加必要权限:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 启用前台服务需额外添加 --> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />同时在代码中动态申请权限,避免因权限未授予导致Geolocator阻塞UI线程。
解除Vivo系统后台限制:
Vivo Android 13的省电策略可能拦截应用后台服务,前往「设置→电池→后台高耗电管理」,允许你的应用后台高耗电;或在「设置→应用与权限→应用管理→你的应用→权限→特殊权限」中开启「忽略电池优化」。升级Geolocator插件版本:
检查geolocator插件版本,确保其适配Android 13,建议升级到最新稳定版,修复版本兼容导致的初始化异常。临时禁用硬件加速测试:
在AndroidManifest.xml的<application>标签中添加android:hardwareAccelerated="false",排查是否因Vivo机型硬件加速兼容性问题导致渲染失败。排查UI线程阻塞:
日志显示Flutter引擎已连接,但UI未渲染,检查runApp()之前的代码是否有同步阻塞操作(比如同步请求位置信息),将这类操作移至异步任务中执行。
内容的提问来源于stack exchange,提问作者Ajay T P
相关产品推荐
相关产品推荐

