Android Gradle添加HTTP依赖后ByteArrayBody等类无法解析该如何处理?
问题原因
你引入的 org.apache.http.legacy 仅包含Android系统提供的基础Apache HTTP核心组件,ByteArrayBody、HttpMultipartMode、StringBody 属于扩展的 httpmime 模块,不在legacy包范围内,同时你写的 useLibrary 'org.apache.http.entity.mime.content' 不是系统支持的合法配置,不会生效。
解决方案
按以下步骤修改配置即可:
- 先删除模块级build.gradle中无效的
useLibrary 'org.apache.http.entity.mime.content'行 - 在同文件的
dependencies代码块中添加httpmime依赖:
dependencies { // 其他已有依赖保持不变 implementation 'org.apache.httpcomponents:httpmime:4.5.13' }
- 如果构建时出现类重复冲突,改用带排除规则的依赖声明即可:
dependencies { // 其他已有依赖保持不变 implementation ('org.apache.httpcomponents:httpmime:4.5.13') { exclude group: 'org.apache.httpcomponents', module: 'httpclient' } }
补充建议
Apache HTTP组件已被Android官方废弃多年,后续版本兼容性会持续下降,新开发的业务更推荐使用OkHttp、Retrofit等主流网络框架实现文件上传需求。
内容的提问来源于stack exchange,提问作者remov
相关产品推荐
相关产品推荐

