面向 S+(版本 31 及更高版本)需要 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一。将依赖项提升到 18.0.2

问题描述 投票:0回答:1

我遇到了由 gms 库版本

17.0.0
引起的生产崩溃,建议将所有相关依赖项都改为
18.0.2
,我就是这么做的。

我们遇到的所有以下库

18.0.2

  • play-services-tagmanager
  • play-services-auth-api-phone
  • play-services-maps

除了,

play-services-ads-identifier
,它仅在
18.0.1
作为其最新版本。

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.ActivityThread.handleReceiver (ActivityThread.java:4520)
  at android.app.ActivityThread.access$1900 (ActivityThread.java:259)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2219)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:233)
  at android.os.Looper.loop (Looper.java:344)
  at android.app.ActivityThread.main (ActivityThread.java:8249)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:589)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1071)
Caused by java.lang.IllegalArgumentException: <app id omitted>: 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.getBroadcastAsUser (PendingIntent.java:651)
  at android.app.PendingIntent.getBroadcast (PendingIntent.java:638)
  at com.google.android.gms.internal.gtm.zzbv.zzfe (zzbv.java)
  at com.google.android.gms.internal.gtm.zzbv.cancel (zzbv.java)
  at com.google.android.gms.internal.gtm.zzbv.zzaw (zzbv.java)
  at com.google.android.gms.internal.gtm.zzan.zzag (zzan.java)
  at com.google.android.gms.internal.gtm.zzap.<init> (zzap.java)
  at com.google.android.gms.internal.gtm.zzap.zzc (zzap.java)
  at com.google.android.gms.analytics.CampaignTrackingReceiver.onReceive (CampaignTrackingReceiver.java)
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:4504)

除了我能想到的旧 gms 库版本之外,我不知道其他依赖项可能会导致此问题。

我的

work-runtime-ktx
位于
2.8.1
,这是可能导致此帖子

中提到的问题的版本的更高版本

如果我离开

play-services-ads-identifier
18.0.1
还会出现这个问题吗?

android kotlin android-studio gradle dependencies
1个回答
0
投票

异常是由

CampaignTrackingReceiver
引起的,在堆栈跟踪中,
zzbv.java
文件使用
0
意图标志,并且可能导致异常,

自从崩溃报告表明,

崩溃可能与 play-services-analytics-impl 有关 (com.google.android.gms:play-services-analytics-impl

play-services-tagmanager
更改为
18.0.2
可能会解决该问题。

© www.soinside.com 2019 - 2024. All rights reserved.