在构建 Android App Bundle 时,是否可以针对不同的 API 级别使用不同的依赖项?

Is it possible to use different dependencies for different API levels when building an Android App Bundle?

我目前构建了两个单独的 APK 文件,一个用于 API 16-20 级,另一个用于 API 21+ 级。

对于 API 16-20,我使用 'com.squareup.okhttp3:okhttp:3.12.0',这是 API 20 及更低版本支持的最后一个版本。对于 API 21+ 我使用最新版本。

我正在使用构建风格实现这个,见下文:

    productFlavors {

       ...

        api21plus
                {
                    dimension "apiLevel"
                    minSdkVersion 21
                    versionCode = 514
                    versionName = '1.514'

                }
        api16to20
                {
                    dimension "apiLevel"
                    minSdkVersion 16
                    maxSdkVersion 20
                    versionCode = 513
                    versionName = '1.513'
                }


    }
...

  dependencies {

        api21plusImplementation 'com.squareup.okhttp3:okhttp:4.9.1'
        api16to20Implementation 'com.squareup.okhttp3:okhttp:3.12.0'

}

我想迁移到 Android App Bundle 格式,但我不确定如何实现相同的结果。有什么方法可以为不同的 ABI 拆分\ API 级别指定不同的依赖关系?

您可以上传两个针对不同 Android 版本的 App Bundle,类似于上传两个针对 Android 版本的不同 APK。

这是唯一的方法,因为 AAB 不支持 Android SDK 版本的代码定位。