You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

ARCore 1.52.0在三星Android 14设备上追踪闪烁、平面/特征点检测失效的原因排查问询

ARCore 1.52.0在三星Android 14设备上追踪闪烁、平面/特征点检测失效的原因排查问询

看起来你碰到了一个非常棘手的适配问题——之前运行正常的ARCore应用,在ARCore升级到1.52.0后,突然在三星Android 14设备上出现追踪状态在TRACKINGPAUSED之间反复闪烁、完全检测不到平面和特征点的情况,甚至官方Hello AR样本也中招了。结合你提供的所有细节,我来梳理下可能的核心原因和排查方向:


一、ARCore 1.52.0针对三星Android 14的已知适配回归

你提到官方Hello AR样本在同一设备上也出现完全一致的问题,这基本可以排除你自身代码的配置问题,大概率是ARCore 1.52.0在三星Android 14机型上存在兼容性回归bug
ARCore的新版本偶尔会在特定品牌/系统版本的设备上出现适配问题,尤其是当系统(Android 14)和ARCore版本同步更新时,底层相机数据流、追踪算法的适配逻辑容易出现冲突。你之前的应用能正常运行、官方ARApp(可能用了旧版ARCore或适配过的版本)正常,也侧面印证了这一点。


二、CameraX与ARCore的依赖冲突(即使未直接使用PreviewView)

即使你没有直接使用CameraX的PreviewView,只要项目中引入了CameraX 1.5.3的依赖,就可能和ARCore 1.52.0的相机底层逻辑产生冲突:

  • ARCore本身会独占接管相机硬件,但CameraX的核心库可能会悄悄修改系统相机的状态、权限或参数配置,干扰ARCore的相机数据流稳定性。
  • CameraX的相机生命周期管理逻辑,可能和ARCore的session.resume()/session.pause()产生竞争,导致相机状态频繁波动,进而引发追踪状态反复切换。
  • 部分CameraX版本会强制修改相机的帧率、曝光参数,和你配置的ARCoreAUTO对焦、BLOCKING更新模式不兼容,破坏了ARCore视觉追踪的数据源稳定性。

三、ARCore配置的潜在细节优化点

你的配置代码看起来符合常规需求,但可以尝试几个小调整来验证:

  1. 临时开启深度模式:虽然你设置了depthMode = Config.DepthMode.DISABLED,但部分三星设备的ARCore平面检测依赖深度信息辅助。尝试切换为DepthMode.AUTOMATIC,看是否能恢复平面检测和追踪稳定性。
  2. 调整更新模式UpdateMode.BLOCKING在部分设备上可能导致帧更新不及时,引发追踪状态波动。尝试切换为UpdateMode.LATEST_CAMERA_IMAGE测试。
  3. 权限与后台资源排查:确认应用在Android 14上是否正确申请了CAMERA权限,且没有其他后台应用(如第三方相机、视频通话APP)在抢占相机资源。Android 14对相机后台访问的限制更严格,虽然官方ARApp正常,但仍可排查确认。

四、三星Android 14系统的相机HAL层变更

Android 14对相机硬件抽象层(HAL)做了不少更新,三星可能在自家定制系统中修改了相机底层逻辑,而ARCore 1.52.0未及时适配:

  • 相机帧的格式、数据传输路径变化,导致ARCore无法稳定获取相机图像流,进而引发追踪状态闪烁。
  • 三星的“自适应刷新率”“相机增强”等系统功能,可能干扰了ARCore所需的稳定相机帧速率。可以尝试关闭设备的高刷模式、相机相关优化选项后重新测试。

具体排查建议

  1. 降级ARCore版本:尝试将ARCore依赖降级到之前你的应用能正常运行的版本(如1.51.0或更早),验证是否能恢复正常。
  2. 临时移除CameraX依赖:如果项目中CameraX不是必须的,临时移除CameraX相关依赖后重新打包测试,确认是否是依赖冲突导致。
  3. 向Google反馈适配bug:因为官方样本也出现问题,这属于明确的设备适配bug。你可以通过Google ARCore的官方反馈渠道,提交设备型号、系统版本、ARCore版本的详细信息,帮助团队定位修复。
  4. 检查系统补丁:确认三星设备是否有未安装的系统小补丁,部分Android 14的增量补丁可能修复了相机HAL的问题,进而解决ARCore的适配故障。

补充:你提到官方样本中特征点可见但平面检测失效,这进一步验证了是ARCore版本的适配问题——特征点可见说明相机图像流能被ARCore正常获取,但平面检测的算法逻辑在该设备环境下无法正常运行,属于ARCore 1.52.0针对三星Android 14的特定bug。

火山引擎 最新活动