org.apache.http.entity.ContentType不再出现在Apache中?

CQM*_*CQM 8 java apache android intellij-idea android-studio

由于某种原因,我无法导入org.apache.http.entity.ContentType.我添加了Apache HTTP 4.3.3:

  • 客户
  • 核心
  • 公地编解码器
  • HttpClient的缓存
  • 共享记录
  • httpmime
  • 流畅-HC

最初我没有导入所有这些,但由于问题仍然存在,我现在已经完成了所有这些,我已经清理了我的项目并重建了它

import org.apache.http.entity.mime.MultipartEntityBuilder; 作品

import org.apache.http.HttpEntity; 也有效

import org.apache.http.entity.ContentType; 根本找不到

我正在使用Android Studio(IntelliJ),所以我不确定构建路径答案在这里是否有用

我也尝试通过gradle链接导入,但我遇到了一个不同的错误,需要自己更多地控制jar文件

Jav*_*aru 14

org.apache.http.entity.ContentTypeorg.apache.httpcomponents:httpcore:4.3.x模块中.但同样如此org.apache.http.HttpEntity.你找到一个而不是另一个最有可能的事实意味着他们没有从v4.3.x JAR中获取.Apache HttpCommponents项目最近推出了很多课程.所以它可能会发现HttpEntity在较旧/不同的版本httpcore中以某种方式被拉出来; 没有ContentType该类的版本.您需要验证它的位置HttpEntity.有几种方法可以看到从哪里获取依赖关系.

选项1 最简单的方法之一是将光标放在类上(在import语句或变量声明中)并打开快速文档(Ctrl+ QJ).在文档对话框的顶部,它将显示找到类的依赖项:

在此输入图像描述

选项2 此选项将显示您的类路径上是否有多个类的实例.打开Goto Class对话框(Ctrl+ NO)并输入类名(您可以完全符合或不符合条件.您甚至可以在paritally输入名称并使用驼峰式搜索).在找到的类列表中,右侧将是找到类的位置. 在此输入图像描述 右边是班级来自的依赖关系.如果它显示不止一次,则表示它在不同的罐子中被多次拉出.如果另一个依赖项httpcore作为传递依赖项引入不同版本,则可能会发生这种情况(使用构建工具时).所以你需要解决这个问题.请注意,在我的屏幕截图中,我有两个不同版本的org.springframework.http.HttpEntity课程.一个来自Spring 3.2.10,一个来自4.0.6.在这种特殊情况下,因为我的项目中有一个基于Spring 3.2.x的模块和一个单独的Spring 4.0.x模块.所以我很好,因为他们没有冲突,因为那些是独立的模块.但在大多数情况下,这将引起关注.

选项3 您还可以展开并查看" 项目工具"窗口中的" 外部库"节点,以查看依赖项是否被拉入两次.

目前还不清楚您的项目是如何配置的.你提到了gradle,但它似乎更像是一个想法.如果您正在使用maven或gradle,并且httpcore在pom或build文件中声明了正确的依赖项,请确保执行重新导入在此输入图像描述在适当的构建工具窗口上,以便它正确同步,并将该模块添加到项目的依赖项中.然后使用上述信息查看是否有多个版本的httpcore模块被拉入.