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

相关推荐
Libraeking3 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack
市场部需要一个软件开发岗位3 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
JMchen1235 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
crmscs6 小时前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob6 小时前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享
机建狂魔6 小时前
手机秒变电影机:Blackmagic Camera + LUT滤镜包的专业级视频解决方案
android·拍照·摄影·lut滤镜·拍摄·摄像·录像
hudawei9966 小时前
flutter和Android动画的对比
android·flutter·动画
lxysbly8 小时前
md模拟器安卓版带金手指2026
android
儿歌八万首8 小时前
硬核春节:用 Compose 打造“赛博鞭炮”
android·kotlin·compose·春节
消失的旧时光-194311 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed