java - 在 Android 12 上使用 Huawei HMS Base 6.1.0.302 执行针对 API 31 的 Android APP 时崩溃

标签 java android kotlin huawei-mobile-services huawei-push-notification

我已经针对目标 API 31 更新了我的应用程序,现在我在运行时仅在装有 Android 12 的手机上执行时发生崩溃。崩溃是:

E/AndroidRuntime: FATAL EXCEPTION: HuaweiApiManager
    Process: com.example.myapp, PID: 4873
    java.lang.IllegalArgumentException: com.example.myapp: 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)

此错误与 When will Push Kit include the android:exported attributes required for Android 12? 有关

修复此错误的 HMS Base 版本的大概发布日期是什么时候?

最佳答案

基础SDK新版本发布:

实现'com.huawei.hms:base:6.2.0.300'

此问题已修复,您可以先显式依赖此版本的 base sdk,这应该可以解决问题。

关于java - 在 Android 12 上使用 Huawei HMS Base 6.1.0.302 执行针对 API 31 的 Android APP 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69492882/

相关文章:

java - Weld/CDI 的最佳调试技巧是什么?

java - hibernate查询组合3张表来获取一张表对应的对象

java - 如何检索 RDF 属性

android - 找不到符号 Volley

android - 如何保持已发布和更新的 APK?

android - Kotlin 中的 Retrofit 实现 - 方法默认参数

java - Maven 不会部署到 Tomcat

java - 安卓开发 : Getting data from the web

以 Vararg 作为第一个参数的 Kotlin 方法

kotlin - 将双变量的值获取为无穷大