# WiFi 设备连接问题解决方案 ## 问题描述 在 Trae 环境下,运行应用到三星平板(WiFi 连接)时,一直显示 "Installing build\app\outputs\flutter-apk\app-debug.apk...",但 Android Studio 能正常安装。 ## 根本原因 WiFi 连接的设备建立 VM Service 连接较慢,导致 Flutter 认为安装卡住。实际上 APK 已经成功安装,只是 Flutter 在等待 VM Service 端口连接时超时。 ## 解决方案 ### 方案 1:使用 VS Code 专用配置(推荐) 1. 在 VS Code 中按 `F5` 或点击调试按钮 2. 在配置下拉菜单中选择 **"flutter_application_2 (WiFi Device)"** 3. 该配置已优化为: - 设备超时时间:120 秒 - 连接类型:仅 WiFi 设备 - 目标设备:192.168.50.213:44263(三星平板) ### 方案 2:使用辅助脚本 #### Windows 批处理脚本 ```bash wifi_device_helper.bat ``` #### PowerShell 脚本 ```powershell .\wifi_device_helper.ps1 ``` 脚本提供以下功能: - 选项 1:运行到 WiFi 设备(三星平板) - 选项 2:运行到 USB 设备 - 选项 3:仅构建 APK - 选项 4:手动安装 APK 到 WiFi 设备(绕过 VM Service 连接) - 选项 5:检查设备连接状态 - 选项 6:使用详细日志运行(调试用) ### 方案 3:手动命令 #### 运行到 WiFi 设备 ```bash flutter run --device-id=192.168.50.213:44263 --device-timeout=120 --device-connection=wireless ``` #### 仅构建 APK ```bash flutter build apk --debug ``` #### 手动安装 APK ```bash # 构建后手动安装 flutter build apk --debug # 使用 ADB 安装 E:\sdk\android\platform-tools\adb.exe -s 192.168.50.213:44263 install -r build\app\outputs\flutter-apk\app-debug.apk # 启动应用 E:\sdk\android\platform-tools\adb.exe -s 192.168.50.213:44263 shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER app.wushu.poes/app.wushu.poes.MainActivity ``` ## 配置说明 ### VS Code launch.json 配置 所有配置已添加 `--device-timeout=60` 参数,默认超时时间从 10 秒增加到 60 秒。 #### 新增配置 **WiFi 设备配置:** ```json { "name": "flutter_application_2 (WiFi Device)", "request": "launch", "type": "dart", "deviceId": "192.168.50.213:44263", "args": [ "--device-timeout=120", "--device-connection=wireless" ] } ``` **USB 设备配置:** ```json { "name": "flutter_application_2 (USB Device)", "request": "launch", "type": "dart", "deviceId": "S48DTKPRVK4H8PKB", "args": [ "--device-timeout=30", "--device-connection=attached" ] } ``` ## 常见问题 ### Q: 为什么 Android Studio 能正常安装? A: Android Studio 有更完善的超时处理和重试机制,并且对 WiFi 设备有专门的优化。 ### Q: 如何确认设备已连接? A: 运行以下命令: ```bash flutter devices # 或 E:\sdk\android\platform-tools\adb.exe devices ``` ### Q: 如果还是卡住怎么办? A: 使用辅助脚本的选项 4(手动安装 APK),这会绕过 VM Service 连接等待。 ### Q: 如何查看详细日志? A: 使用 `--verbose` 参数: ```bash flutter run --device-id=192.168.50.213:44263 --verbose ``` 或使用辅助脚本的选项 6。 ## 技术细节 ### 问题分析过程 1. **设备连接检查**:Flutter 和 ADB 都能识别到设备 2. **APK 构建**:构建成功完成 3. **安装过程**:APK 实际已安装成功(显示 "Success") 4. **卡住位置**:在 "Waiting for VM Service port to be available..." 阶段 5. **根本原因**:WiFi 连接延迟导致 VM Service 端口连接建立较慢 ### 解决方案原理 1. **增加超时时间**:从默认 10 秒增加到 60-120 秒 2. **指定连接类型**:使用 `--device-connection=wireless` 优化 WiFi 连接 3. **手动安装**:绕过 VM Service 连接等待,直接安装 APK ## 相关文件 - `.vscode/launch.json` - VS Code 调试配置 - `wifi_device_helper.bat` - Windows 批处理辅助脚本 - `wifi_device_helper.ps1` - PowerShell 辅助脚本 - `CHANGELOG.md` - 更新日志(版本 1.4.3) ## 更新日志 详见 [CHANGELOG.md](CHANGELOG.md) 版本 1.4.3。