You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 14中HealthConnect插入记录抛出Conflict异常求助

Android 14 HealthConnect 插入记录时出现 "Conflict found, but couldn't read the entry" 异常

问题详情

在Android 14上测试HealthConnect集成,插入体重、饮水量或营养记录时抛出以下异常:

Caused by: android.health.connect.HealthConnectException: android.health.connect.HealthConnectException: Conflict found, but couldn't read the entry.
    at android.health.connect.aidl.HealthConnectExceptionParcel$1.createFromParcel(HealthConnectExceptionParcel.java:33)
    at android.health.connect.aidl.HealthConnectExceptionParcel$1.createFromParcel(HealthConnectExceptionParcel.java:29)
    at android.os.Parcel.readTypedObject(Parcel.java:4055)
    at android.health.connect.aidl.IInsertRecordsResponseCallback$Stub.onTransact(IInsertRecordsResponseCallback.java:106)
    at android.os.Binder.execTransactInternal(Binder.java:1392)
    at android.os.Binder.execTransact(Binder.java:1299)

相同代码在Android 13(HealthConnect为独立应用)上运行正常。已确认:

  • SDK状态可用
  • WRITE_WEIGHT权限已授予
  • 依赖版本为androidx.health.connect:connect-client:1.1.0-alpha07
  • AndroidManifest.xml配置正确

修改应用包名后可成功插入记录,推测是HealthConnect缓存了该包名的数据导致冲突。

最小复现代码:

val time = ZonedDateTime.parse("2024-03-16T00:00:00+02:00[Europe/Sofia]")

val r = WeightRecord(
    time = time.toInstant(),
    zoneOffset = time.offset,
    weight = 60.kilograms,
    metadata = Metadata(
        clientRecordId = "weight_dummy_id", clientRecordVersion = 0
    )
)

healthConnectClient.insertRecords(listOf(r)) // 抛出异常

排查与解决方案

  • 清理HealthConnect应用数据
    进入系统设置 → 应用 → 找到HealthConnect → 存储 → 删除数据。注意此操作会清除设备上所有HealthConnect关联数据,测试前请备份重要信息。
  • 更新clientRecordVersion值
    冲突通常源于使用相同clientRecordId但版本号未更新。将clientRecordVersion从0改为递增数值(如1),确保每次插入/更新记录时版本号唯一且递增。
  • 改用updateRecords处理冲突
    若需保留原有clientRecordId,可使用updateRecords替代insertRecords,明确处理冲突场景:
    val updateRequest = UpdateRecordsRequest(
        recordsToUpdate = listOf(r),
        updateType = UpdateRecordsRequest.UpdateType.REPLACE_EXISTING
    )
    healthConnectClient.updateRecords(updateRequest)
    
  • 升级HealthConnect客户端依赖
    当前使用的是预览版依赖,尝试升级至最新稳定版(如1.1.0或更高),可能已修复Android 14上的兼容性问题。
  • 重置应用与HealthConnect的关联
    在HealthConnect设置中找到你的应用,取消所有权限授权后重新授权,再尝试插入记录。

内容的提问来源于stack exchange,提问作者NewestUser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 20:23:17