如何为Android Library的androidTest APK指定非minSdk的targetSdk?
如何为Android Library的androidTest APK单独设置targetSdk版本
当然可以为Android Library的androidTest模块生成的APK单独指定与库minSdk不同的targetSdk版本,具体配置方式如下:
基础配置(Groovy DSL)
在Library模块的build.gradle文件中,通过androidTest闭包独立配置测试APK的参数:
android { // 库本身的核心配置 defaultConfig { minSdk 21 targetSdk 34 versionCode 1 versionName "1.0" } // 为androidTest模块单独设置targetSdk androidTest { defaultConfig { // 这里设置测试APK的targetSdk,可与库的targetSdk/minSdk不同 targetSdk 33 // 可选:也可以单独指定测试APK的minSdk(如果需要) // minSdk 23 } } }
基础配置(Kotlin DSL)
如果项目使用Kotlin DSL,在build.gradle.kts中这么写:
android { defaultConfig { minSdk = 21 targetSdk = 34 versionCode = 1 versionName = "1.0" } androidTest { defaultConfig { targetSdk = 33 // 可选:单独设置测试APK的minSdk // minSdk = 23 } } }
针对构建变体的配置
如果项目有productFlavors,也可以为不同变体的测试APK分别设置targetSdk:
// Groovy示例 android { productFlavors { free { // 库的free变体配置 } paid { // 库的paid变体配置 } } androidTest { productFlavors { free { targetSdk 33 } paid { targetSdk 34 } } } }
注意事项
- 测试APK的targetSdk不能低于库本身的minSdk,否则可能引发兼容性问题
- 上述配置仅作用于androidTest生成的测试APK,不会影响Library本身的构建参数
内容的提问来源于stack exchange,提问作者ben75
相关产品推荐
相关产品推荐

