Android - MultipartEntity 和依赖项

标签 android android-studio androidhttpclient

我最近将我的项目从 Eclipse 迁移到 Android Studio(我还没有完全控制这个 IDE)。在这个项目中,我有一个文件 uploader AsyncTask,它通过 http 发送多部分。为此,我使用 org.apache.httpcomponents。我创建了以下依赖项:

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 > httpcomponentsorg.apache.httpcomponents 依赖项之间存在冲突,但我找不到解决问题的解决方案。

最佳答案

我遇到了同样的问题 - 尝试使用 http-android-client(这也依赖于 httmime 但需要 4.3)。这对我有用:

dependencies {
  compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
  compile('org.apache.httpcomponents:httpmime:4.3') {
      exclude module: "httpclient"
  }
}

关于Android - MultipartEntity 和依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28470486/

相关文章:

android - react-native android-run 失败(全新安装)

java - 应用程序尝试访问网页时 FC

php - Android:通过 HttpResponse 从 PHP 服务器获取文件

android - 开发时在未 root 的真实设备上的 system/priv-app 文件夹中运行应用程序

java - 从 IP 网络摄像头获取流

android - 颠倒的纹理? | OpenGL-ES 2.0 (安卓)

Android Studio 处理 SNAPSHOT 依赖

java - "Cannot resolve symbol ` Facebook Graph API 请求 `"错误

android - 无法解析符号 HttpEntity、HttpResponse

java - 如何使 Activity 在每次进入 Activity 时不重新加载/刷新?