尝试将我的应用程序更新到Android S,但遇到一些问题,如标题/错误所述。我收到错误
目标 S(版本 10000 及更高版本)要求在创建“挂起提示”时指定FLAG_IMMUTABLE或FLAG_MUTABLE之一。强烈建议使用FLAG_IMMUTABLE,仅当某些功能依赖于 PendingIntent 是可变的(例如,如果需要将其与内联回复或气泡一起使用)时才使用FLAG_MUTABLE。
我的代码中只有1个用于通知的PendingIntent,我添加了Flag
PendingIntent.getActivity(
mContext,
0 /* Request code */,
intentOptional.get(),
PendingIntent.FLAG_IMMUTABLE
)
阅读谷歌的文档,这应该是我在Android s中进行安全更新所需的全部内容。我在这里找到了几个月前的一篇帖子,问了类似的问题,有人说要添加WorkManagerhttps://stackoverflow.com/a/67181567/4219444即使您不使用它,也可以将其添加到项目中。所以我补充道
def work_version = "2.7.0-alpha04"
implementation "androidx.work:work-runtime-ktx:$work_version"
这一点用都没有,因为我仍然收到错误。有人知道这是Android S升级的常见问题吗?还是它也会检查库?因为应用程序一直崩溃,不知道该怎么办。
我已经创建了一个没有我的库的应用程序,并且使用了相同的pending intent,并且能够运行一个带有pending意图的基本hello world应用程序。我从试图编译的项目中收到的全部错误是:
目标S(版本10000及以上)要求在创建PendingIntent时指定FLAG_IMMUTABLE或FLAG_MUTABLE之一。强烈建议使用FLAG_IMMUTABLE,仅当某些功能依赖于可变的PendingIntent时才使用FLAG_MUTABLE,例如,如果需要与内联回复或气泡一起使用。在Android . app . pending intent . check flags(pending intent . Java:375)在Android . app . pending intent . getbroadcastasuser(pending intent . Java:645)在Android . app . pending intent . get broadcast(pending intent . Java:632)在com . Google . Android . GMS . internal . GTM . zzbv . zzfe(未知来源:52)在com . Google . Android . GMS . internal . GTM . zzbv . cancel(未知来源:54)
添加您的待定意图,如下所示:
PendingIntent.getActivity(getApplicationContext(), 0, intent,PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT)
根据文档,“强烈建议在创建挂起提示时使用FLAG_IMMUTABLE。仅当某些功能依赖于修改基本意图时,才应使用FLAG_MUTABLE,例如,任何需要与内联回复或气泡一起使用的 PendingIntent。
所以用这个PendingIntent.FLAG_IMMUTABLE或PendingIntent.FLAG_UPDATE_CURRENT
而不仅仅是PendingIntent.FLAG_UPDATE_CURRENT
例如< code > PendingIntent . get activity(context,yourRequestID,yourIntent,pending intent。FLAG_IMMUTABLE或PendingIntent。FLAG _更新_当前)
因为"即使设置了FLAG_IMMUTABLEFLAG_UPDATE_CURRENT仍然有效"
如果错误仍然存在,并且您的targetSdkVersion=31,则一定是因为您的一个依赖项在内部使用WorkManager,或者您的依赖项直接使用旧版本的WorkManager而导致错误。
要解决,只需添加此依赖项
implementation 'androidx.work:work-runtime-ktx:2.7.0'
它通过添加来解决
implementation 'androidx.work:work-runtime:2.7.0-alpha05'
在我的等级中。(您可以添加此库的最新版本)
似乎是工作管理器中的一个错误。检查版本2.7.0-alpha02中的错误修复
https://developer . Android . com/jetpack/Android x/releases/work # 2 . 7 . 0-alpha 02
当我在android 12中启动我的应用程序时,它崩溃了,并给了我这个错误,我的项目已经有了这个依赖 我更新了 firebase消息库 我在我的项目中使用了待处理的意图,就像这样 错误:
应用程序在运行时崩溃,出现以下错误: java.lang.非法参数异常:maa.abc:目标 S(版本 31 及更高版本)要求在创建挂起的意外时指定FLAG_IMMUTABLE或FLAG_MUTABLE之一。强烈建议使用FLAG_IMMUTABLE,仅当某些功能依赖于 PendingIntent 是可变的(例如,如果需要将其与内联回复或气泡一起使用)时才使用FLAG_MUTABLE。at andr
我正在使用Facebook Audience Network通过该应用程序获利,但最近在将targetSdkVersion升级到31后,我在crashlytics中遇到了巨大的问题,我使用此依赖项 我用这个代码片段代码初始化了我的应用程序 应用程序类 但问题只出现在AndroidS中 这是日志报告: 请有人帮帮我
需要帮助。我从三星手机用户那里得到标题中描述的崩溃。我已经将< code>FLAG_IMMUTABLE作为< code>myFlags或FLAG_IMMUTABLE添加到我的所有PendingIntents中。我的Pixel 3上的应用程序没有崩溃。我试图添加< code > work manager 2 . 7 . 0版,这是在其他类似问题的答案中推荐的,但它仍然崩溃。 有人对此有什么提示吗?
应用程序在运行时崩溃并出现以下错误: 以S为目标(31版及更高版本)要求在创建PendingIntent时指定FLAG_IMMUTABLE或FLAG_MUTABLE之一。强烈考虑使用FLAG_IMMUTABLE,仅当某些功能依赖于PendingIntent是可变的时才使用FLAG_MUTABLE,例如,如果它需要与内联回复或气泡一起使用。 我尝试了所有可用的解决方案,但该应用程序在Android