EMAS云升级,我们的APK(target 33),接入云升级 安装的时候 报错了 FATAL EXCEPTION: main Process: com.boomlink.machine, PID: 10735 java.lang.IllegalArgumentException: com.boomlink.machine: 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.getActivityAsUser(PendingIntent.java:458) at android.app.PendingIntent.getActivity(PendingIntent.java:444) at android.app.PendingIntent.getActivity(PendingIntent.java:408) at com.taobao.update.common.b.a.e$a.b(Taobao:59) at com.taobao.update.common.b.a.e.notifyDownloadFinish(Taobao:2) at com.taobao.update.apk.d.a$d.run(Taobao:1) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:210) at android.os.Looper.loop(Looper.java:299) at android.app.ActivityThread.main(ActivityThread.java:8103) 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:1045)?
阿里云sdk的bug,没适配新版本android,得等阿里云更新sdk了。
android 12出来这么久了阿里云还没适配,也确实是坑。
这个错误是由于在目标版本(targetSdkVersion)设置为33(Android 12及以上版本)的情况下,创建 PendingIntent 时未指定必要的标志(Flags)导致的。从Android S(版本31)开始,要求在创建 PendingIntent 时必须指定 FLAG_IMMUTABLE 或 FLAG_MUTABLE 之一,以确保 PendingIntent 的可变性。
在你的情况下,你可以按照错误信息中的建议,使用 FLAG_IMMUTABLE 或 FLAG_MUTABLE 中的一个来修复这个问题。具体的解决方法取决于你创建 PendingIntent 的代码逻辑和需求。
使用 FLAG_IMMUTABLE: 如果你的 PendingIntent 不需要被修改或更新,推荐使用 FLAG_IMMUTABLE。这会将 PendingIntent 设置为不可变,提高应用的安全性和性能。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。