应用程序在运行时崩溃,出现以下错误:
java.lang.非法参数异常:maa.abc:目标 S(版本 31 及更高版本)要求在创建挂起的意外时指定FLAG_IMMUTABLE或FLAG_MUTABLE之一。强烈建议使用FLAG_IMMUTABLE,仅当某些功能依赖于 PendingIntent 是可变的(例如,如果需要将其与内联回复或气泡一起使用)时才使用FLAG_MUTABLE。at android.app.待定智能检查旗(挂起的Intent.java:375) at android.app.PendingIntent.getBroadcastAsUser(待定智能.java:645) at android.app.挂起的Intent.getBroadcast(待定意图.java:632) at com.google.android.exoplayer2.ui.玩家通知管理器.createBrocastIntent(玩家通知管理器.java:1373) 在 com.google.android.exoplayer2.ui.玩家通知管理器.createPlayingActions(玩家通知管理器.java:1329) 在网站(玩家通知管理器.java:643) 在网站(玩家通知管理器.java:529) 在谷歌.机器人.exoplayer2.ui.玩家通知管理器.create与通知通道(玩家通知管理器.java:456) 在 com.谷歌.android.exoplayer2.ui.玩家通知管理器创建通知通道(玩家通知管理器.java:417)
我尝试了所有可用的解决方案,但该应用程序仍然在Android 12上崩溃。
@Nullable
@Override
public PendingIntent createCurrentContentIntent(@NonNull Player player) {
Intent intent = new Intent(service, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
return PendingIntent.getActivity(service, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
}
Kotlin的解决方案,如果你使用API M,只需添加这个标志
val flags = when {
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M -> FLAG_UPDATE_CURRENT or FLAG_IMMUTABLE
else -> FLAG_UPDATE_CURRENT
}
val toastPendingIntent = PendingIntent.getBroadcast(context, 0, providerIntent, flags)
检查并将 exoplayer 的依赖版本更新为最新版本
之前用于返回的< code > Android . app . pending content . get broadcast()
@Nullable
@Override
private static PendingIntent createBroadcastIntent(
String action, Context context, int instanceId) {
Intent intent = new Intent(action).setPackage(context.getPackageName());
intent.putExtra(EXTRA_INSTANCE_ID, instanceId);
return PendingIntent.getBroadcast(
context, instanceId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
如果您仔细观察PendingIntent.FLAG_IMMUTABLE在上面的代码片段中缺少
现在已经更新,返回以下内容
@Nullable
@Override
private static PendingIntent createBroadcastIntent(
String action, Context context, int instanceId) {
Intent intent = new Intent(action).setPackage(context.getPackageName());
intent.putExtra(EXTRA_INSTANCE_ID, instanceId);
int pendingFlags;
if (Util.SDK_INT >= 23) {
pendingFlags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE;
} else {
pendingFlags = PendingIntent.FLAG_UPDATE_CURRENT;
}
return PendingIntent.getBroadcast(context, instanceId, intent, pendingFlags);
}
如果使用java或react-native,则将它粘贴到app/build.gradle中
dependencies {
// ...
implementation 'androidx.work:work-runtime:2.7.1'
}
当我在android 12中启动我的应用程序时,它崩溃了,并给了我这个错误,我的项目已经有了这个依赖 我更新了 firebase消息库 我在我的项目中使用了待处理的意图,就像这样 错误:
应用程序在运行时崩溃并出现以下错误: 以S为目标(31版及更高版本)要求在创建PendingIntent时指定FLAG_IMMUTABLE或FLAG_MUTABLE之一。强烈考虑使用FLAG_IMMUTABLE,仅当某些功能依赖于PendingIntent是可变的时才使用FLAG_MUTABLE,例如,如果它需要与内联回复或气泡一起使用。 我尝试了所有可用的解决方案,但该应用程序在Android
我正在使用Facebook Audience Network通过该应用程序获利,但最近在将targetSdkVersion升级到31后,我在crashlytics中遇到了巨大的问题,我使用此依赖项 我用这个代码片段代码初始化了我的应用程序 应用程序类 但问题只出现在AndroidS中 这是日志报告: 请有人帮帮我
一直在尝试解决这个问题,但没能解决。这是udacity课程,我试图使用挂起的意图创建通知,但挂起的意图是可变的,我尝试了这种方式。 视图模型 片段 当我正在研究由gradle依赖项解决的其他类似问题时,我已经添加了 但是显示这个错误 Udacity启动器代码
需要帮助。我从三星手机用户那里得到标题中描述的崩溃。我已经将< code>FLAG_IMMUTABLE作为< code>myFlags或FLAG_IMMUTABLE添加到我的所有PendingIntents中。我的Pixel 3上的应用程序没有崩溃。我试图添加< code > work manager 2 . 7 . 0版,这是在其他类似问题的答案中推荐的,但它仍然崩溃。 有人对此有什么提示吗?
尝试将我的应用程序更新到Android S,但遇到一些问题,如标题/错误所述。我收到错误 目标 S(版本 10000 及更高版本)要求在创建“挂起提示”时指定FLAG_IMMUTABLE或FLAG_MUTABLE之一。强烈建议使用FLAG_IMMUTABLE,仅当某些功能依赖于 PendingIntent 是可变的(例如,如果需要将其与内联回复或气泡一起使用)时才使用FLAG_MUTABLE。 我