我最近将我的项目从Eclipse迁移到Android Studio(我还没完全控制这个IDE)。在这个项目中,我有一个通过http发送multipart的文件上传器AsyncTask。为此,我使用org.apache.httpcomponents。我创建了以下的依赖:Android - MultipartEntity和依赖关系
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.apache.httpcomponents:httpcore:4.4'
compile 'org.apache.httpcomponents:httpmime:4.4'
...
}
在我的Java代码的AsyncTask:
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody(...);
builder.addBinaryBody(...);
builder.addBinaryBody(...);
HttpEntity entity = builder.build(); // < throw exception
我在启动上传得异常:
Caused by: java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE
at org.apache.http.entity.ContentType.toString(ContentType.java:153)
at org.apache.http.entity.mime.MultipartFormEntity.<init>(MultipartFormEntity.java:52)
at org.apache.http.entity.mime.MultipartEntityBuilder.buildEntity(MultipartEntityBuilder.java:226)
at org.apache.http.entity.mime.MultipartEntityBuilder.build(MultipartEntityBuilder.java:230)
我认为android.jar > httpcomponents
和org.apache.httpcomponents
依赖项之间有冲突,但我找不到解决方案来解决我的问题。
这解决了我的问题,非常感谢你! – alex 2015-02-12 12:41:48
@soey谢谢你的答案,它拯救了我。工作完全正常。 – 2015-08-06 13:32:43