ANR崩溃
应用无响应 (ANR) 崩溃通常源于应用相关的问题,发生在应用无法响应生命周期管理器 (LCM) 或系统调用。在这些情况下,LCM会强制终止无响应的应用。有几种特定场景可能会触发ANR,从而导致应用终止。阅读ANR报告
如果您的应用进程发生ANR,那么您要查看的下一个字段将是LCM_ANR_REASON字段;顾名思义,这将是该进程发生ANR的原因。这些原因详述如下:应用因无响应 (ANR) 而被终止
为了确保系统上运行的所有应用都处于活动状态并积极遵守其合同,系统上的各种服务会跟踪应用的响应能力。如果它们确定应用已无响应,将请求LCM强制终止该进程。以下是可能导致ANR的事件。请注意,配置文件、平台和产品配置可以覆盖默认的超时长度,因此这可能不是您的应用必须遵守的超时长度。
有了上述数据,我们应该向应用团队提供上述信息,并根据LCM_ANR_REASON向应用团队推荐解决方案。
JS异常
JavaScript (JS) 异常通常源自应用,并记录在journald日志中。在调查问题时,将JS异常与所报告问题的时间戳和重现步骤相关联非常重要。尽管由于各种因素,某些JS异常可能会随机出现在日志中,但若找到符合特定问题时间范围的异常,则强烈表明存在应用端问题,而不是操作系统层面的问题。如果JSErrors出现致命异常后发生崩溃,则是应用的方法引发异常。媒体控制按钮不起作用
当视频播放期间遥控器上的媒体控制键(如播放、暂停或快进/快退)失效时,日志分析就变得至关重要。全面调查通常侧重于两个方面:验证遥控器的按键事件是否正确到达应用,以及确认应用是否成功确认这些信号。此系统检查有助于确定通信链中断的位置。 但是,应用开发者只能查看应用确认日志输入日志
应用的确认日志
KMC按钮事件未定义日志
导航不起作用
这与上面提到的媒体控制按钮问题相同。调查应侧重于两个方面:验证遥控器的按键事件是否正确到达应用,以及确认应用是否成功确认这些信号。此系统检查有助于确定通信链中断的位置。虽然无权访问输入日志,但应用开发者可以看到应用对按钮事件的确认。如果应用确认了按钮事件,则很可能已收到来自遥控器的导航事件,应在应用端进行第一级分类,以检查应用实现中是否存在任何问题。VoiceView不能正常工作
如果VoiceView不能正常工作且未读取用户报告值,则应当查看ucc树,看看标签上是否有可供阅读的无障碍功能描述。Vega脚本和Webview应用的链接如下 KeplerScript WebView用户界面裁剪/用户界面焦点问题
因为应用控制用户界面 (UI) 元素的呈现,UI裁剪问题通常是与应用相关的问题。这些问题要么是组件被截断,要么是选项卡、菜单或子菜单中有空白字段。应用团队必须进行调查,以检查UI对象的呈现和布局实现。由于这些是与UI焦点相关的问题,因此操作系统日志通常不会包含有关这些问题的相关信息。音频相关问题
音频丢失/重叠问题 如果应用尝试在不获取音频焦点的情况下写入音频,则应用会返回“Would block”(将进行阻止)错误。这需要从应用的角度对它们未能获得所需焦点会话的原因进行分类:Paused焦点状态下写入失败后会进入不良状态。例如,当Alexa中断后无法恢复播放并停留在加载微调器屏幕上时,可能会发生这种情况。
媒体播放不能正常运行
遇到媒体播放问题时,要区分操作系统级问题和应用特定问题,需要系统调查。一种关键的诊断方法是测试多个应用的播放情况 - 如果问题在各种媒体应用中仍然存在,则可能表示存在操作系统层面或硬件问题,而单个应用的问题通常源于应用特定的原因。不同媒体格式的行为也可以说明问题;如果所有格式都无法播放,则表明存在操作系统或驱动程序问题,而特定格式的问题通常表明存在应用编解码器或兼容性限制。 系统音频行为提供了另一个关键的诊断指标。如果音频正常运行但应用中的媒体播放失败,这通常表示应用出现问题。相反,如果所有音频(包括系统声音)都受到影响,则问题可能出在操作系统或硬件层面。问题的发生时间也可以提供信息 - 操作系统更新后出现的问题通常表明存在系统层面的变化,而与应用更新同时出现的问题则表明存在应用特定的原因。播放冻结
在调查媒体播放冻结问题时,一些关键指标有助于确定问题是源于操作系统还是应用层面。一个主要指标是CPU和内存使用率 - 如果系统在所有进程中表现出较高的CPU利用率或冻结期间显著的内存压力,这通常表明存在操作系统层面的资源限制。相反,如果只有媒体应用显示资源消耗过多,则问题可能出在应用中。冻结的频率和模式也提供了宝贵的见解 - 定期发生的间歇性冻结通常表示应用中存在缓冲或内存管理问题,而同时影响多个应用的全系统卡顿或冻结通常表示存在操作系统层面的问题。 冻结期间的应用行为提供额外的诊断线索。如果应用在冻结期间完全没有响应,而其他系统功能仍能正常运行,则表明存在应用特定的问题,例如死锁或线程管理不善。但是,如果在媒体播放期间整个系统变得缓慢或没有响应,这通常表示操作系统层面的资源限制或驱动程序问题。冻结与特定操作之间的关系也可以说明问题 - 如果在特定操作(例如搜索或更改质量设置)期间持续出现冻结,则表明存在应用层面的处理问题。同时,若有与系统事件(例如后台进程启动或系统资源被重新分配)同时发生的冻结,通常表示存在操作系统层面的冲突。WebView特定问题
WebView异常未显示在日志中
onError、onHttpError和onSslError将捕获WebView的一些连接错误,但不会显示console.log输出。为此,您需要使用vda forward tcp:9229 tcp:9229进行端口转发,然后使用chrome://inspect/#devices连接到设备。在这里,可以使用Chrome作为调试工具,包括在控制台选项卡中查看console.logs。
未找到WebView本地HTML资产
这是一个常见问题,可能有两个原因。向/assets/*添加本地文件时,调试快速刷新和“运行”按钮不会上传资产文件夹中的更改。每次对本地html资产进行更改时,都需要在运行之前进行重建。您也可以删除构建文件夹,然后重建,以确保新的html文件存在。还要确保您的source.uri指向file:///pkg/assets/*并且该文件位于项目根目录的/asset目录中(而不是/src目录中)
WebView菜单按钮不起作用
启用allowsDefaultMediaControl属性时,不会捕获菜单按钮。Vega脚本包装器应用需要使用预期的命令将JavaScript注入WebView参考。

