【发布时间】:2022-11-21 22:53:24
【问题描述】:
在我的帐户收到的每条新消息中,应用程序都会自行重启。然后它给出了这个错误。我试图找到解决方案但失败了。我在底行写了错误代码。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.edusoft.teacher.myeducare, PID: 7367
java.lang.RuntimeException: Unable to start receiver com.onesignal.GcmBroadcastReceiver: java.lang.IllegalArgumentException: com.edusoft.teacher.myeducare: 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.ActivityThread.handleReceiver(ActivityThread.java:4438)
at android.app.ActivityThread.access$1700(ActivityThread.java:265)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2114)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8168)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037)
Caused by: java.lang.IllegalArgumentException: com.edusoft.teacher.myeducare: 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:378)
at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:648)
at android.app.PendingIntent.getBroadcast(PendingIntent.java:635)
at com.onesignal.GenerateNotification.getNewActionPendingIntent(GenerateNotification.java:195)
at com.onesignal.GenerateNotification.createGenericPendingIntentsForNotif(GenerateNotification.java:404)
at com.onesignal.GenerateNotification.showNotification(GenerateNotification.java:388)
at com.onesignal.GenerateNotification.fromJsonPayload(GenerateNotification.java:116)
at com.onesignal.NotificationBundleProcessor.ProcessJobForDisplay(NotificationBundleProcessor.java:115)
at com.onesignal.NotificationBundleProcessor.ProcessFromGCMIntentService(NotificationBundleProcessor.java:98)
at com.onesignal.GcmBroadcastReceiver.startGCMService(GcmBroadcastReceiver.java:138)
at com.onesignal.GcmBroadcastReceiver.processOrderBroadcast(GcmBroadcastReceiver.java:129)
at com.onesignal.GcmBroadcastReceiver.onReceive(GcmBroadcastReceiver.java:70)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:4425)
... 9 more
我找到了这段代码,但要么我没有正确使用它,要么它不能正常工作
val updatedPendingIntent = PendingIntent.getActivity(
applicationContext,
NOTIFICATION_REQUEST_CODE,
updatedIntent,
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT // setting the mutability flag
)
【问题讨论】:
-
您是否以某种方式将
PendingIntent提供给 OneSignal?此崩溃来自 OneSignal 及其基于堆栈跟踪的 FCM 消息的接收。我的猜测是您需要更新您的 OneSignal SDK 或以其他方式与他们讨论这次崩溃。
标签: java android android-studio kotlin android-pendingintent