你的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或以上版本。老项目可能没有用到动态权限,所以适配时一定要加上动态权限,不然软件会闪退报错的哦。

相关推荐
RickyWasYoung26 分钟前
【matlab】字符串数组 转 double
android·java·javascript
bluetata1 小时前
Rokid AR眼镜开发入门:构建智能演讲提词器Android应用
android·人工智能·云计算·ar·ai编程
马 孔 多 在下雨2 小时前
手机App上的轮播图是如何实现的—探究安卓轮播图
android·智能手机
00后程序员张3 小时前
iOS 26 开发者工具推荐,构建高效调试与性能优化工作流
android·ios·性能优化·小程序·uni-app·iphone·webview
小范馆4 小时前
通过 useEventBus 和 useEventCallBack 实现与原生 Android、鸿蒙、iOS 的事件交互
android·ios·harmonyos
恋猫de小郭4 小时前
Flutter 也有类 React Flow 的节点流程编辑器,快来了解下刚刚开源的 vyuh_node_flow
android·前端·flutter
2501_916008894 小时前
iOS 26 文件导出与数据分析,多工具组合下的开发者实践指南
android·macos·ios·小程序·uni-app·cocoa·iphone
2501_916008894 小时前
iOS混淆实战用多工具组合把IPA加固做成可复用的工程能力(iOS混淆 IPA加固 无源码混淆
android·ios·小程序·https·uni-app·iphone·webview
wangdaoyin20104 小时前
UniApp 在手机端(Android)打开选择文件和文件写入
android·前端·uni-app
我命由我123455 小时前
Android PDF 操作 - AndroidPdfViewer 显示 PDF 异常清单(数据为 null、数据为空、PDF 文件损坏、非 PDF 文件)
android·java·java-ee·pdf·android studio·android-studio·android runtime