【问题标题】:NoClassDefFoundError in MultipartEntityBuilder while uploading file上传文件时 MultipartEntityBuilder 中的 NoClassDefFoundError
【发布时间】:2014-08-12 07:31:37
【问题描述】:

我想上传图像并将数据发送到服务器。我为此使用 MultipartEntityBuilder。我在 Android Studio 上编码。

这是我的代码

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(config.api_url+"profile.php");

MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

if(mLastTakenImageAsJPEGFile!=null) {
    builder.addBinaryBody("image", mLastTakenImageAsJPEGFile);
}

builder.addTextBody("token", _appPrefs.getToken());
final HttpEntity reqEntity = builder.build();

httpPost.setEntity(reqEntity);

我收到运行时错误

java.lang.NoClassDefFoundError: org.apache.http.entity.ContentType 
at 
org.apache.http.entity.mime.MultipartEntityBuilder.addBinaryBody(MultipartEntityBuilder.java:146)

如何解决?

【问题讨论】:

标签: android android-studio noclassdeffounderror contenttype


【解决方案1】:

我在httpmime 4.3.6发现了这个问题,还没有找到解决办法,建议你用httpmime 4.2.1,效果很好。

MultipartEntity multipartEntity = new MultipartEntity();
ContentBody contentBody = new FileBody(file);
multipartEntity.addPart("image", new FileBody(file));
httpPost.setEntity(multipartEntity);

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,

    您需要添加httpcore-4.2.3.jarhttpmime-4.3.2.jar,如果您使用IOutils,请使用ByteStreams guava-18.jar 不要忘记互联网权限将.jar 添加到您的\projectName\ app\libs 文件夹并同步。

    使用这个:

    byte[] data;
    data = ByteStreams.toByteArray(inputStream); 
    

    代替:

    byte[] data;
    data = IOUtils.toByteArray(inputStream);  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 2013-09-28
      • 1970-01-01
      相关资源
      最近更新 更多