You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决D8警告:未找到org.conscrypt.Conscrypt类型?

解决OkHttp 3.10.0引发的D8未找到org.conscrypt.Conscrypt警告

这问题我之前帮不少开发者排查过,本质是OkHttp 3.10.0版本在内部会尝试使用Conscrypt作为安全提供者,但你的项目里没引入这个依赖,或者脱糖配置没跟上导致的。给你几个靠谱的解决办法,按优先级排序:

1. 直接引入Conscrypt依赖

最直接的方式就是把Conscrypt库添加到项目里,让OkHttp能找到对应的类。在你的Module级别build.gradle中添加以下依赖:

implementation 'org.conscrypt:conscrypt-android:2.5.2'

Conscrypt是Google维护的开源安全库,不仅能解决这个警告,还能提升网络请求的安全性和兼容性,推荐使用这个方案。

2. 升级OkHttp到较新版本

OkHttp从3.12版本开始,已经把Conscrypt的依赖改成了可选的,不会再强制依赖它。如果你不需要Conscrypt的特性,直接升级OkHttp到稳定版就能解决问题。比如升级到3.x的最后一个稳定版,或者直接跳转到4.x系列:

// 3.x稳定版
implementation 'com.squareup.okhttp3:okhttp:3.12.13'
// 或者4.x最新稳定版(需要Java 8+支持)
implementation 'com.squareup.okhttp3:okhttp:4.11.0'

升级还能顺便修复旧版本的bug,获得一些新特性,一举两得。

3. 临时屏蔽警告(不推荐长期使用)

如果暂时不想调整依赖或升级,可以让D8忽略这个警告。在项目根目录的gradle.properties中添加:

android.d8.failOnError=false

或者在Module的build.gradle里配置:

android {
    compileOptions {
        // 如果开启了脱糖,确保已经添加了脱糖依赖
        coreLibraryDesugaringEnabled true
        coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
    }
    d8 {
        ignoreWarnings true
    }
}

注意:这个方案只是掩盖问题,没有从根本上解决依赖缺失的问题,长期来看还是前两个方案更稳妥。

内容的提问来源于stack exchange,提问作者smoothdvd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:20:11