· 文件描述符(FD)耗尽
系统或应用泄露 FD,导致截屏进程无法打开新文件,报 “Too many open files”。
关键日志:
E/Screenshot: java.io.IOException: Too many open files
E/MediaProvider: java.io.IOException: Too many open files
· Binder 事务过大
跨进程传输截屏图像数据时,Binder 缓冲区不足抛出 TransactionTooLargeException。
关键日志:
E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
E/Screenshot: android.os.TransactionTooLargeException
5. 多用户与隐私空间特性
· 多用户 / 隐私空间 / 平行空间冲突
荣耀 MagicOS 支持隐私空间或多用户,不同空间下的媒体存储路径隔离。若截屏时发生用户切换、空间被锁定或存储权限异常,可能导致保存路径不可用。
关键日志:
W/MediaProvider: volume not found for user X
E/MediaStore: no external storage available for user X
· 分身应用上下文异常
应用分身可能指向无效的 MediaStore 实例,造成写入失败。
adb logcat -v time | grep -iE ”screenshot|capture|存储空间|save.*screen|MediaStore|No space|OutOfMemory|TransactionTooLarge|Too many open files|Read-only file system|FATAL EXCEPTION|FLAG_SECURE|MediaProvider.*exception|SQLiteException|SurfaceFlinger.*fail|SELinux|avc”