Flutter项目模拟器运行崩溃提示‘Lost connection to device’求助
解决Flutter模拟器因
androidx.window.extensions方法缺失崩溃的问题 问题原因
模拟器的Android系统版本对应的androidx.window.extensions扩展库版本过低,不包含addWindowLayoutInfoListener方法,而真机通常搭载了更新的系统或厂商适配的库,因此能正常运行。
解决方案
1. 升级模拟器系统版本
- 打开Android Studio的Device Manager,删除旧模拟器设备,创建系统版本≥Android 12(API 31)的模拟器。
- 说明:
addWindowLayoutInfoListener方法是Android 12及以上版本的androidx.window.extensions库新增的,低版本系统模拟器无此方法实现。
2. 锁定androidx.window依赖版本
在Flutter项目的android/app/build.gradle文件中,添加或修改androidx.window的依赖:
dependencies { // 保留原有依赖,新增以下两行 implementation 'androidx.window:window:1.0.0' implementation 'androidx.window:window-java:1.0.0' }
执行以下命令重新构建项目:
flutter clean flutter pub get cd android && ./gradlew clean build cd .. && flutter run
3. 禁用WindowManager扩展依赖(临时方案)
若暂时无法升级模拟器,可在android/app/src/main/AndroidManifest.xml中添加配置禁用系统扩展:
<application> <!-- 其他配置 --> <meta-data android:name="androidx.window.extensions.layout" android:value="disabled" /> </application>
此方案会让应用使用WindowManager默认实现,可能影响多窗口适配功能,但可快速解决崩溃问题。
内容的提问来源于stack exchange,提问作者Motaz khogali
相关产品推荐
相关产品推荐

