源码目录:/Users/liang/Desktop/yingeoai-sdk-restaurant-demo
提示词工程:/Users/liang/AndroidStudioProjects/zhct/zhctprompt
build.gradle 将 AGP 调整为 7.3.0;gradle/wrapper/gradle-wrapper.properties 使用本机已有 Android 工程相同的 Gradle 7.4 组合。UVCAndroid 1.0.13 时在 mergeExtDexDebug 阶段空指针失败。app/build.gradle 将 UVCAndroid 调整为本机同名工程和 AIDishRecognition 已使用的 1.0.6;对比确认当前项目实际调用的 ICameraHelper、CameraHelper、Size 和 UVCCamera API 在 1.0.6 中均存在。./gradlew clean :app:assembleDebug :app:testDebugUnitTest --stacktrace --warning-mode all 成功,Debug APK 构建完成,78 项单元测试 0 失败。adb install -r 覆盖安装到 FY_3576SE;冷启动返回 Status: ok,MainActivity 在前台保持运行,15 秒观察期内进程存活且未再出现 USBMonitor 的 Parcel recycled earlier than expected 崩溃。onCreate 读取一次由异步 onAttach 回调维护的设备缓存;相机 Helper 重建时缓存先被清空,回调晚于页面初始化或不重放时,Spinner 会永久保持空数据。CameraUsbUtils 改为优先读取 UVC Helper 的实时 getDeviceList(),回调缓存仅作为降级数据源;Helper 初始化后主动枚举并选择已保存设备,避免依赖 UVCAndroid 1.0.6 的 onAttach 回放时机。CameraSettingActivity 在设备接入、移除和相机打开后刷新相机及分辨率适配器,并在页面停止时解除监听。getSupportedSizeList() 和 getPreviewSize(),改读设备打开回调生成的尺寸缓存;USB 授权失败时页面不会再出现 ANR。SettingConst.KEY_USB_CAMERA,避免新增散落的字符串常量。./gradlew clean testDebugUnitTest assembleDebug 成功,78 项单元测试 0 失败,Debug APK 构建完成。FY_3576SE;相机设置页枚举出 3 个设备(1008_11391_19040、1007_3141_25440、1004_1374_41357),实测切换到 1004_1374_41357 后 Spinner 与偏好值同步更新,页面保持响应且无崩溃/ANR。UVCAndroid 1.0.6 使用可变隐式 PendingIntent 申请 USB 权限;应用以 targetSdk 34 运行在 Android 14 时,该请求被系统兼容性变更 236704164 拦截,日志停在 request permission / onCancel,无法进入相机打开和预览回调。app/build.gradle 保留 compileSdk 34,将 targetSdk 调整为 33,与现有使用同版 UVCAndroid 的安卓项目配置边界保持一致,并在配置旁补充兼容原因注释。./gradlew clean testDebugUnitTest assembleDebug 成功,78 项单元测试 0 失败,Debug APK 构建完成。FY_3576SE;日志正常到达 onDeviceOpen、onCameraOpen 并持续输出 NV21 预览帧。1004_1374_41357 切换至 1008_11391_19040 后画面与分辨率同步更新为 1920x1080,未出现崩溃或 ANR;验证结束后已恢复选择 1004_1374_41357。cameraSizeList;页面在重建窗口读取空缓存后将分辨率容器设为 GONE。当保存分辨率与设备默认分辨率不同时还会二次打开相机,第二次打开跳过尺寸枚举,使空缓存无法恢复。CameraUsbUtils 按物理摄像头稳定 ID 保存最后一次成功枚举的分辨率列表;同一摄像头重开时恢复缓存,新列表成功返回后再原子替换,避免把其他摄像头的尺寸混入当前列表。./gradlew clean testDebugUnitTest assembleDebug 成功,78 项单元测试 0 失败,Debug APK 构建完成。1920x1080、640x480 后选项持续显示,切换 1004/1008 后各自分辨率正常恢复,预览持续出帧且无崩溃或 ANR。验证结束后已恢复 1004_1374_41357 和 1280x960。