使用org.apache.http.entity.StringEntity显然是奇怪的编译错误。两个不同项目中的不同行为

时间:2012-04-18 21:48:13

标签: java android

我将在Eclipse Java项目中运行良好的代码复制到Android项目中,即使我导入相同的.jars,我也会在Android项目中遇到编译错误。

在Android项目中,Eclipse在以下行中显示错误“构造函数StringEntity(String,String,String)未定义”:

StringEntity se = new StringEntity("example data.", "application/json", "UTF-8");

但是在另一个Java项目中,它编译并运行良好。 documentation表示构造函数StringEntity(String string, String mimeType, String charset)确实存在。

我在两个项目中导入相同的org.apache.http.entity.StringEntity。 Eclipse项目中使用的jar与Android项目中使用的相同。我甚至复制并粘贴了它们。我也清理了这个项目。仍然没有成功。任何人都可以向我解释为什么会发生这种错误吗?

2 个答案:

答案 0 :(得分:2)

您的项目很可能使用不同版本的Apache Http组件。该库已经融入Android,很少发布最新版本。您当前使用的实际版本将取决于您正在使用的Android版本。

答案 1 :(得分:2)

Android不使用最新版本的HttpClient 4.x。

Android version of StringEntity目前只有这些构造函数:

  • StringEntity(String s, String charset)
  • StringEntity(String s)

我认为Android SDK类优先于您提供的与JAR相同的类。我将删除JAR以避免将来出现这种混淆 - 同一类的不同版本从未对任何人有好处。