feat: Android 4.2 兼容改造

- minSdk 19 -> 17(config.gradle)
- OkHttp 4.12 -> 3.12.0(app build.gradle 新老双栈统一锁定)
- Retrofit 2.11 -> 2.6.0 + Coroutines 1.8.1 -> 1.6.4
- SignRequestPolicy: toHttpUrlOrNull -> HttpUrl.parse(3.12 API 适配)
- HeaderInterceptor/SignAuthenticator: 属性访问改方法调用(url()/request()/priorResponse())
- VideoViewTv: SDK_INT<19 强制切 AndroidMediaPlayer 内核 + instanceof 短路保护
- AndroidManifest: overrideLibrary OAID 4.1.3(minSdk 19)
- 全局 resolutionStrategy.force 锁定 OkHttp/Retrofit 版本
This commit is contained in:
zhaogd
2026-08-25 11:35:34 +08:00
parent d11464d466
commit fca025383c
7 changed files with 46 additions and 22 deletions

View File

@@ -264,7 +264,8 @@ dependencies {
// implementation 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:6.8.3'
implementation 'commons-codec:commons-codec:1.15'
implementation 'com.squareup.okhttp3:okhttp:3.12.13'
// 3.12.0:3.12.1+(含 3.12.13)引入 Android10Platform 触发 Dalvik VerifyError,必须精确锁 3.12.0
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation 'com.google.code.gson:gson:2.8.9'
implementation 'com.github.gzu-liyujiang:Android_CN_OAID:4.1.3'
implementation('io.github.volcengine-tls:tls-android-producer:2.0.2-api16') {
@@ -278,22 +279,28 @@ dependencies {
implementation 'com.google.guava:guava:31.1-android'
// ===== 网络层(脚手架新引入,与既有 HttpUtils 双栈共存) =====
// 为什么显式指定版本:app 模块此前未声明 retrofit/okhttp/moshi/coroutines,避免被根 config.gradle 隐式拉入不同版本。
// Kotlin 1.9.22 -> KSP 1.9.22-1.0.17 已对齐。
// 为什么用 `platform(enforcedPlatform)` 而非 `implementation`:okhttp-bom 是 Bill-of-Materials,本身仅提供版本对齐,
// 不能被当作运行时产物拉到 runtime classpath(这正是上一个编译报错的根因)。
implementation platform('com.squareup.okhttp3:okhttp-bom:4.12.0')
implementation 'com.squareup.retrofit2:retrofit:2.11.0'
implementation 'com.squareup.retrofit2:converter-moshi:2.11.0'
implementation 'com.squareup.okhttp3:okhttp'
implementation 'com.squareup.okhttp3:logging-interceptor'
// ===== Android 4.2 兼容(对齐 mediaapp 已验证组合,见 Android4.2兼容性改动文档)=====
// - OkHttp 4.x 官方要求 API 21+;3.13+ 含 Android10Platform(API 10 SSL API)触发 Dalvik VerifyError。
// 3.12.0 是支持 API 9-20 的长期分支(与 libcore/libdata 老栈版本一致),配合下方 force 全局锁定。
// - Retrofit 2.6.0:suspend 函数 2.6.0 起支持;2.9+ 传递依赖 OkHttp 3.14.9(含 Android10Platform)。
// - Coroutines 1.6.4:1.7+ 要求 minSdk 21,1.6.4 兼容 API 16+。
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
implementation 'com.squareup.retrofit2:converter-moshi:2.6.0'
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'
implementation 'com.squareup.moshi:moshi:1.15.1'
implementation 'com.squareup.moshi:moshi-kotlin:1.15.1'
ksp 'com.squareup.moshi:moshi-kotlin-codegen:1.15.1'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.2'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
// 防止其他依赖(tls-producer/libdata 等)传递引入更高版本 OkHttp/Retrofit 破坏 4.2 兼容
configurations.all {
resolutionStrategy.force 'com.squareup.okhttp3:okhttp:3.12.0'
resolutionStrategy.force 'com.squareup.retrofit2:retrofit:2.6.0'
}
implementation 'net.jpountz.lz4:lz4:1.3.0'
implementation 'org.slf4j:slf4j-android:1.7.36'
//腾讯buggly