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

相关推荐
2501_9462309821 小时前
Cordova&OpenHarmony通知中心实现
android·javascript
csj501 天前
安卓基础之《(9)—中级控件(3)文本输入》
android
Elastic 中国社区官方博客1 天前
Elasticsearch:在 X-mas 吃一些更健康的东西
android·大数据·数据库·人工智能·elasticsearch·搜索引擎·全文检索
2501_946230981 天前
Cordova&OpenHarmony提醒管理系统实现
android·javascript
shaominjin1231 天前
Jetpack Compose 实践入门:从环境搭建到待办列表实现
android
冬奇Lab1 天前
稳定性性能系列之二——ANR机制深度解析:从触发到上报
android·性能优化·debug
江上清风山间明月1 天前
Android BIND_NOTIFICATION_LISTENER_SERVICE 权限详解
android·notification·service·bind·listener
Lei活在当下1 天前
【日常知识积累】Kotlin let 函数、inline 函数以及 DSL
android·kotlin·编程语言
世界美景1 天前
一种基于 ART 内存特征的 LSPosed/Xposed/分身环境 完美检测方案
android·安全·安卓·xposed
2501_946230981 天前
Cordova&OpenHarmony外观主题设置
android·javascript