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

荣耀50使用HMS Scan Kit 1.3.2.300时App出现崩溃问题求助

崩溃触发原因
  • 你使用的com.huawei.hms:scan:1.3.2.300属于较旧版本,内部集成的Hianalytics埋点逻辑未适配Android 11(API 30)的权限变更:TelephonyManager.getNetworkType()方法从Android 11开始需要READ_PHONE_STATE权限才能调用,旧版本埋点逻辑没有做权限判断,未获取权限时直接调用该方法就会抛出SecurityException异常导致崩溃。
  • 崩溃发生在HMS SDK内部的埋点上报线程,和扫码核心功能本身无关,属于SDK内部统计逻辑的适配问题。
对应的解决办法

方案1:升级扫码SDK版本(最推荐)

华为官方在后续版本已经修复了该适配问题,补全了埋点逻辑的权限校验,直接将依赖升级到com.huawei.hms:scan:2.10.0.300及以上稳定版本即可,无需修改其他业务代码。

方案2:提前申请所需权限(适合暂时无法升级SDK的场景)

如果项目因为兼容性原因暂时不能升级SDK,可以通过主动申请权限规避崩溃:

  1. 在AndroidManifest.xml中添加权限声明:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  1. 在触发扫码功能之前,动态申请READ_PHONE_STATE权限,等用户授权通过后再调用扫码相关接口。

方案3:关闭埋点上报(临时规避方案)

如果不想额外申请电话相关权限,可以在Application初始化阶段调用SDK的关闭埋点接口,直接停用触发崩溃的统计逻辑:

com.huawei.hms.mlkit.common.ha.HianalyticsLogProvider.disableLog();

该方案不影响扫码核心功能的正常使用,仅会影响华为后台对扫码功能的使用数据统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:15:07