Files
zhini_im/拍摄照片问题排查指南.txt
rw0067680 c01808ac21 first commit
Change-Id: Ib7c2ab10a2562044fcaf9879388a6cbc1db6ac61
2025-12-23 10:00:49 +08:00

99 lines
3.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
拍摄照片问题排查指南
=====================================
问题现象:
- 相机启动后,拍照完成但无法返回 ImageGridActivity
- onActivityResult 没有被调用
- 页面一直显示"正在保存照片..."
排查步骤:
=====================================
1. 检查日志输出
- 过滤标签rjb_ImageGridActivity 和 rjb_Utils
- 关键日志点:
* takePhoto() 被调用
* 相机Activity已启动
* onPause / onStop相机启动后应该会调用
* onRestart / onResume相机返回后应该会调用
* onActivityResult如果被调用说明相机正确返回
2. 检查 Activity 生命周期
- 相机启动后ImageGridActivity 应该进入 onPause/onStop
- 相机返回后,应该进入 onRestart/onResume
- 如果 onResume 被调用但 onActivityResult 没有,说明相机没有正确返回结果
3. 检查文件是否被创建
- 在 onResume 中会检查拍照文件是否存在
- 如果文件存在但 onActivityResult 没被调用,可能是相机没有正确返回
- 文件路径:/data/user/0/com.xunpaisoft.social/cache/img/IMG_*.jpg
4. 检查权限
- 确保相机权限已授予
- 检查日志中的权限相关输出
5. 检查 FileProvider 配置
- 确保 provider_paths.xml 与 demo 项目一致
- 确保 AndroidManifest.xml 中的 FileProvider 配置正确
- authority 应该是:${applicationId}.provider
6. 华为相机特殊问题
- 某些华为相机可能对 cache 目录有特殊限制
- 如果问题持续,可能需要使用外部存储目录
7. 使用 adb 命令检查
- 检查文件是否被创建:
adb shell ls -la /data/user/0/com.xunpaisoft.social/cache/img/
- 检查 Activity 状态:
adb shell dumpsys activity activities | grep ImageGridActivity
- 检查系统日志中的错误:
adb logcat | grep -i "error\|exception\|crash"
8. 对比 demo 项目
- 确保代码与 demo 项目完全一致
- 检查 manifest 配置是否一致
- 检查 FileProvider 配置是否一致
常见问题及解决方案:
=====================================
问题1onActivityResult 没有被调用
- 可能原因:相机应用没有正确返回结果
- 解决方案:
1. 检查相机应用是否有特殊设置
2. 尝试使用其他相机应用测试
3. 检查系统日志中是否有相机相关的错误
问题2文件被创建但 onActivityResult 没有被调用
- 可能原因:相机应用保存了文件但没有正确返回结果
- 解决方案:
1. 在 onResume 中检查文件,如果存在可以手动触发处理(仅用于排查)
2. 检查是否是华为相机的特殊行为
问题3Activity 被销毁
- 可能原因:系统内存不足或配置问题
- 解决方案:
1. 检查 Activity 的 launchMode 配置
2. 检查是否在 manifest 中正确配置了 Activity
问题4权限问题
- 可能原因:相机权限或存储权限未授予
- 解决方案:
1. 检查权限请求流程
2. 确保权限已正确授予
下一步操作:
=====================================
1. 运行应用并触发拍照功能
2. 收集完整的日志输出使用过滤rjb_
3. 检查日志中的关键点:
- takePhoto() 是否被调用
- 相机是否启动
- onPause/onStop 是否被调用
- onRestart/onResume 是否被调用
- onActivityResult 是否被调用
- 文件是否被创建
4. 将日志和问题现象一起反馈,以便进一步分析