gpt4 book ai didi

android - OkHttp 支持低于 21 的 SDK 版本

转载 作者:行者123 更新时间:2023-12-03 13:26:11 24 4
gpt4 key购买 nike

OkHttp 有 recently dropped support for Android 4 ,除非通过 separate 3.12.x branch这将在 2021 年 12 月结束之前得到支持(并且可能只会收到关键更新或错误修复)。

假设您希望像我一样继续支持 Android 4,因为 10% 的 Android 用户群仍然占很大比例,并且不想陷入死胡同……

而不是被困在3.12.x所有 sdk 版本的分支,有什么方法可以使用 3.12 sdk < 21 的分支和 3.13 sdk >= 21 的分支, 有点像当然可以使用 HttpUrlConnection对于 sdk < 21和 OkHttp 3.13对于 sdk >= 21 ?

最佳答案

我实际上在为 NativeScript 创建的项目中创建了一个示例:nativescript-http

我想要 minSdk >= 21使用 OkHttp4 和 minSdk > 17 && minSdk < 21使用 LTS 版本:OkHttp 3.12。我正在使用 minSdk 17,因为它与 NativeScript 一样低。但是当然你可以降低到 OkHttp3 支持的程度。

它并不像仅仅为不同的 minSdk 版本创建 flavor 那么简单,这可能是由于 NativeScript 处理插件依赖关系的方式。我花了半天时间才弄明白,所以我把它贴在这里,它可能对某人有帮助:

android {
// ... other config.
flavorDimensions "api"

productFlavors {
minApi21 {
dimension "api"
minSdkVersion 21
versionNameSuffix "-minApi21"
}

minApi17 {
dimension "api"
minSdkVersion 17
versionNameSuffix "-minApi17"
}
}
}

android.applicationVariants.all { variant ->
if (variant.name.contains("minApi17")) {
variant.getCompileConfiguration().resolutionStrategy.force "com.squareup.okhttp3:okhttp:3.12.+"
variant.getRuntimeConfiguration().resolutionStrategy.force "com.squareup.okhttp3:okhttp:3.12.+"
}

variant.outputs.each { output ->
if (variant.name.contains("minApi17")) {
output.versionCodeOverride = 10000000 + variant.versionCode
} else {
output.versionCodeOverride = 20000000 + variant.versionCode
}
}
}

android中的部分是创建2种产品风格,一种用于minSdk 17,一种用于minSdk 21。

android.applicationVariants 中的部分由两部分组成:
  • 确保 flavor minApi17 对 minSdk 17
  • 使用版本 3.12.+
  • 确保每种 flavor 都有自己的构建版本代码。它从 list 中获取版本,对 minApi17 执行 (10000000 + manifestVersionCode),对 minApi21 执行 (20000000 + manifestVersionCode)。
    这将在您构建版本时创建 2 个 APK,一个用于 Android 4 (app-minApi17-release.apk),一个用于 Android 5 (app-minApi21-release.apk)。您也可以将其与 ABI 拆分结合使用。

  • 当您将两个 APK 上传到 Playstore 时,Google 会确保将正确的 APK 分配到不同的设备。

    关于android - OkHttp 支持低于 21 的 SDK 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54652219/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com