如果制作了一个带有多个插件的cordova应用程序。其中之一是 chromecast 插件。连接到接收器后,应用程序停止(消息:...已停止)。在 logcat 中,我看到导致此崩溃的堆栈跟踪。我的问题:如何读取此堆栈跟踪并找到导致错误的确切文件?
2023-12-18 | 09:35:57.526 | 2446-2446 | Android运行时 | E | 致命异常:主要 |
Process: <APPNAME>, PID: 2446
java.lang.IllegalArgumentException: <APPNAME>: 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:401)
at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:671)
at android.app.PendingIntent.getBroadcast(PendingIntent.java:658)
at com.google.android.gms.internal.cast.zzah.zza(Unknown Source:32)
at com.google.android.gms.cast.framework.CastSession$zzb.onResult(Unknown Source:12)
at com.google.android.gms.common.api.internal.BasePendingResult$CallbackHandler.handleMessage(com.google.android.gms:play-services-base@@18.1.0:6)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7941)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)
如果我知道哪个文件导致了问题,我可以轻松解决这个问题。但我没有看到任何可以编辑的文件。
如何读取此堆栈跟踪并打开导致此错误的确切文件?
第二行说:您的代码中仍然有过时的 PendingIntent 调用,可能类似于:
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, mIntent, 0);
从 API 31 开始,必须设置第四个参数,例如
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, mIntent, PendingIntent.FLAG_IMMUTABLE);