你的Android“老”项目适配了吗?在Android14上还能安装吗?

此处的老项目指的是targetSdkVersion低于23 的应用。

由于公司老项目好久没动过,用户那边安卓14系统报以下问题:

拿到老项目运行在自己安卓11手机上正常,看了下项目SDK比较老,都低于23,以为SDK太老,升到23以上部分代码报错,就升级了几个版本,低于23,用户那边安装后还是不行。于是想到6.0系统动态权限,所以把目标SDK升级到了23,添加了动态权限,修改了部分代码,于是用户那边14系统便能正常安装了。

之前Android14没发布之前就好像在哪见过说不再支持Android6.0 系统,一直没放在心上,直到过了将近一年没想到遇到了这个问题,所以又找了官网看了一下变更,官网中安全性中是这样介绍的:

安全性

最低可安装的目标 API 级别

从 Android14开始,targetSdkVersion无法安装低于 23 的应用。要求应用程序满足这些最低目标 API 级别要求可以提高用户的安全性和隐私性。

恶意软件通常针对较旧的 API 级别,以绕过较新 Android 版本中引入的安全和隐私保护。例如,某些恶意软件应用程序使用targetSdkVersion22来避免受到 Android6.0 Marshmallow(API 级别 23)于 2015 年引入的运行时权限模型的影响。 Android 14 的这一变化使恶意软件更难避开安全和隐私方面的改进。尝试安装针对较低 API 级别的应用程序将导致安装失败,并在 Logcat 中显示以下消息:

go 复制代码
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 23, but found 7

在升级到 Android 14 的设备上,任何targetSdkVersion低于 23 的应用程序都将保留安装。

如果您需要测试针对较旧 API 级别的应用程序,请使用以下 ADB 命令:

css 复制代码
adb install --bypass-low-target-sdk-block FILENAME.apk

所以如果你的项目targetSdkVersion低于23时,想要在Android14系统上更新或重新安装时,请一定要把targetSdkVersion改为23或以上版本。老项目可能没有用到动态权限,所以适配时一定要加上动态权限,不然软件会闪退报错的哦。

相关推荐
angerdream11 小时前
Android手把手编写儿童手机远程监控App之四大组件详解2
android
kerli11 小时前
基于 kmp/cmp 的跨平台图片加载方案 - 适配 Android View/Compose/ios
android·前端·ios
半条-咸鱼12 小时前
基于安卓的 WAV 音频采集方案_含工具
android·音视频
九皇叔叔12 小时前
MySQL8.0 版本安装部署
android·adb
OneLIMS13 小时前
OneLIMS 安卓 APK 一键打包说明文档
android
阿亮爱学代码15 小时前
初识Android界面布局
android·xml·view·viewgroup
zopple16 小时前
Laravel 9.x核心特性全解析
android
黑牛儿16 小时前
PHP 8.3性能暴涨实测|对比8.2,接口响应提速30%,配置无需大幅修改
android·开发语言·后端·php
被开发耽误的大厨17 小时前
2、基本类型和引用类型的执行存储流程是怎样的?
android·哈希算法