• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

PendingIntent兼容安卓12 的问题

武飞扬头像
kim5659
帮助1

这是我第一次遇到这个问题,反正我也是第一次做完整的安卓app,很多个第一次。

我之前做的那个老旧手机做桌面摆件的app,因为原来的“无干预”版本无法使用,所以又用回了“和风版”,但这个版本很久没用了,有些东西其实很旧就停了,所以重新搞搞,之前这个app在安卓11和鸿蒙上都可以了。但今天用安卓12的模拟器或鸿蒙启动后(可以启动),却无法进入主界面,直接FC。并出现下面出错信息:

E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.example.thirdversionclock, PID: 14346

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.thirdversionclock/com.example.thirdversionclock.FullscreenActivity_desktop}: java.lang.IllegalArgumentException: com.example.thirdversionclock: 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.

看样子是PendingIntent参数的问题,于是在网上搜了一下,发现也是有很多人遇到这个问题,解决的方法大致有如下三种(我是每一种都试了,都没好使)

1、修改androidmanisfestj.xml每个activity和service的exported="false"改为“true”

学新通

2、修改pendingIntent参数

PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);

修改为:

PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);

把最后一个参数的0改为PendingIntent.FLAG_IMMUTABLE)或PendingIntent.FLAG_MUTABLE)

3、在build.gradle中添加依赖:

implementation 'androidx.work:work-runtime:2.7.1'

但是它最小使用版本是26,但我的app适配最低版本是17,即使改成了26,也可是只可启动,无法进入主页面。

学新通

没再看到其他的方法,但也没解决我的问题,最后我想那我就是兼容安卓12呗,于是我就把目标sdk版本的31改成了30.

学新通

然后我的app就可以完全正常的在安卓12的模拟器和鸿蒙手机上正常运行了,其他什么都没改。真是见了鬼!难道是我对这个“compileSdkVersion”和“targetSdkVersion ”有什么误解?目标版本和编译版本都是安卓11,但app在安卓12上可以正常运行,如果目标版本和编译版本都是安卓12反而不能正常运行?

那所谓的向下兼容是不是就是你最高版本没超过我,但我可以让你运行,如果允许版本超过我,代码就必须按照我的来,否则就不运行,还是有点迷迷糊糊。反正能用就行,我要求也不高,以后遇到类似的事也大致有个方向,应该我这个情况不是个案吧?如有大神可指点一二。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgabbgk
系列文章
更多 icon
同类精品
更多 icon
继续加载