Android 应用程序级别 build.gradle 给出错误:httpclient 定义的类与 Android 现在提供的类冲突

Posted

技术标签:

【中文标题】Android 应用程序级别 build.gradle 给出错误:httpclient 定义的类与 Android 现在提供的类冲突【英文标题】:Android app level build.gradle giving Error : httpclient defines classes that conflict with classes now provided by Android 【发布时间】:2021-12-08 18:58:04 【问题描述】:

在我的一个旧项目中,我在应用级 build.gradle 文件中收到此错误/建议:

httpclient 定义了与 android 现在提供的类冲突的类。解决方案包括查找没有相同问题的较新版本或替代库(例如,对于 httpclient,请改用 HttpUrlConnection 或 okhttp),或使用 jarjar 之类的东西重新打包库。

查看下面的截图:

似乎错误是由于依赖org.apache.httpcomponents:httpmime:4.5.12

我试图通过互联网找到解决方案。试过1,2,3,但没有任何帮助。

任何帮助将不胜感激。

【问题讨论】:

尝试从中排除httpclient。像这样的东西 - implementation ('org.apache.httpcomponents:httpmime:4.5.12') exclude group: 'org.apache.httpcomponents', module: 'httpclient' 我已经尝试过了,但它用于我的网络操作,所以网络类在这样做后会出错。 【参考方案1】:

我通过添加implementation "org.apache.httpcomponents:httpcore:4.4.13" 并排除group: 'org.apache.httpcomponents', module: 'httpclient' 解决了这个问题

检查一下:

implementation('org.apache.httpcomponents:httpmime:4.5.12') 
    exclude group: 'org.apache.httpcomponents', module: 'httpclient'

implementation "org.apache.httpcomponents:httpcore:4.4.13"

【讨论】:

以上是关于Android 应用程序级别 build.gradle 给出错误:httpclient 定义的类与 Android 现在提供的类冲突的主要内容,如果未能解决你的问题,请参考以下文章

Android Duplicate files copied in APK

我如何针对发布版本运行已连接的AndroidTest?

android的getResources()报错如何解决?

如何使用泄漏金丝雀

Android Gradle 插件BuildType 编译类型配置 ④ ( minifyEnabled 配置 | multiDexEnabled | pseudoLocalesEnabled )

android:如何通过自定义工程模板让新建的工程都默认支持lambda表达式