HarmonyOS 如何确定某些异常退出的原因?

在测试过程中,发现某些进程异常退出难以确定是因为什么退出的。例如App没有使用backgroundTaskManager.startBackgroundRunning启动长时任务,并且长时在后台使用AudioCapturer录制麦克风,则有概率会异常退出。但在出现异常退出之后,非常难以追溯并确定异常出现的原因。

1、查看了/data/log/faultlog,并无生成。

2、查看了/data/log/hilog/hilog\_kmsg.xxx.gz,里面并没有记在类似app exit code之类的内容。

3、查看了/data/log/hilog/hilog.xxx.gz,发现是一个非文本文件。

4、如果出现异常退出时,正好连接着DevEco,可以收集到hilog中包含以下内容:

07-01 15:54:58.721   882  1187 E C01713/SUSPEND_MANAGER: [audio_proc.cpp(CheckAudioCapturer):102] AudioCapturer cannot be used after being frozen. The system will kill the UID: 20020086. sourceType is 7, capturerFlags is 0
07-01 15:54:58.722   882  1187 I C01713/SUSPEND_MANAGER: [suspend_manager_impl.cpp(FreezeFreezeUnit):1349] Application 20020086_com.liteav.demo_[27760,] current has media and not apply background_task or ResourceType::AUDIO
07-01 15:54:58.723   882 32368 I C01713/SUSPEND_MANAGER: [freeze_condition_checker.cpp(KillApplicationByUid):62] kill running application, app name is com.xxx.demo, uid is 20xxx0086
阅读 410
1 个回答

可使用错误管理的接口,在应用退出前及时将相关错误及日志上报到开发者的服务平台来定位问题,参考错误监听(ErrorObserver)接口功能介绍:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/errormanager-guidelines-V5\#接口说明

获取/data/log/hilog/hilog.xxx.gz文件,当前hilog日志为编码后二进制形式保存的gz格式文件,可使用hilogtool进行解析: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/hilog-tool-V5

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏