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

使用Build Tools 31集成华为HMS AppService在Android 12上出现崩溃问题

问题复现条件

项目引入依赖如下:

"com.huawei.hms:appservice:6.1.0.301"

使用Build Tools 31构建、targetSdk >=31时,在Android 12及以上系统运行会触发如下崩溃:

java.lang.IllegalArgumentException: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
    at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
    at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:458)
    at android.app.PendingIntent.getActivity(PendingIntent.java:444)
    at android.app.PendingIntent.getActivity(PendingIntent.java:408)
    at com.huawei.hms.api.b.getErrPendingIntent(HuaweiApiAvailabilityImpl.java:10)
    at com.huawei.hms.common.internal.BaseHmsClient.resolution(BaseHmsClient.java:3)
    at com.huawei.hms.common.internal.BaseHmsClient.checkAvailabilityAndConnect(BaseHmsClient.java:34)
    at com.huawei.hms.common.internal.BaseHmsClient.connect(BaseHmsClient.java:1)
    at com.huawei.hms.common.internal.HuaweiApiManager$ConnectionManager.connect(HuaweiApiManager.java:21)
    at com.huawei.hms.common.internal.HuaweiApiManager$ConnectionManager.sendRequest(HuaweiApiManager.java:24)
    at com.huawei.hms.common.internal.HuaweiApiManager.connectAndSendRequest(HuaweiApiManager.java:8)
    at com.huawei.hms.common.internal.HuaweiApiManager.handleMessage(HuaweiApiManager.java:7)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.os.HandlerThread.run(HandlerThread.java:67)
问题根因

你使用的6.1.0.301版本AppService SDK未适配Android 12系统的PendingIntent规则:Android 12(API 31)及以上系统强制要求所有PendingIntent创建时必须显式指定FLAG_IMMUTABLE或FLAG_MUTABLE标记,旧版本SDK未添加对应标记就会触发上述IllegalArgumentException异常。

解决方案
  • 方案1:升级AppService SDK到适配版本(推荐)
    华为AppService SDK从6.3.0.302版本开始已经完成Android 12适配,修复了该PendingIntent问题,直接替换依赖即可:
"com.huawei.hms:appservice:6.3.0.302"

你也可以选择更高的官方稳定版本,均已包含该修复。

  • 方案2:临时兼容方案(无法升级SDK时使用)
    如果项目存在兼容性约束暂时无法升级AppService SDK,可以通过强制引入适配后的华为基础SDK覆盖公共依赖的方式修复问题,添加如下依赖即可:
"com.huawei.hms:base:6.3.0.301"

该版本的base SDK已经修复了PendingIntent适配逻辑,上层AppService SDK调用相关能力时会复用修复后的底层逻辑,不会再触发崩溃。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:57:03