适配API 31的App在Android 12运行HMS Base 6.1.0.302闪退,问询修复版本发布时间
问题描述
我已将应用的目标适配版本升级到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)
该错误与Push Kit适配Android 12所需的android:exported属性问题属于同一系列的系统版本适配问题。
请问修复该问题的HMS Base版本预计发布时间是什么时候?
解答
修复该PendingIntent适配问题的HMS Core Base SDK 6.5.0.300及以上版本已于2022年第一季度正式发布,直接将项目依赖的HMS Base SDK版本升级至6.5.0.300或更高版本即可解决该闪退问题。
如果暂时不方便升级全量HMS Base SDK,你也可以在应用的build.gradle文件中显式指定依赖更高版本的基础适配组件,临时规避该崩溃问题。
内容的提问来源于stack exchange,提问作者Antonio Aponte
相关产品推荐
相关产品推荐

