在Android 14发布之后,许多开发者遇到了一个新问题:无法安装目标SDK版本(targetSdk)低于23的APK。具体来说,当尝试安装这类APK时,会收到INSTALL_FAILED_DEPRECATED_SDK_VERSION错误。作为一名库开发者,我面临的挑战是如何在保持库的minSdk为22的同时,确保其在API 34+设备上进行仪器化测试(instrumented tests)。
问题分析
Android 14的这一新限制是为了提升系统安全性和兼容性,确保应用能利用最新的API和安全功能。但对于那些需要支持较低版本的库项目来说,这无疑是一个难题。特别是对于库项目,targetSdk属性已经弃用,这意味着在构建时如果未明确指定targetSdk,它将默认使用minSdk的值。在我的项目中,minSdk设置为22,targetSdk未设置,因此在API 34+设备上运行仪器化测试时出现了问题。
解决方案
经过一番研究,我找到了一个有效的解决方法,特别是对于使用Kotlin DSL配置的项目:
android{testOptions{