获得MultipartEntityBuilder的致命异常

时间:2017-01-04 13:20:41

标签: java android android-studio

我在使用 NoClassDefFoundError 的URI文件路径创建FileBody时遇到致命异常这里是我的代码。

 try {
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext httpContext = new BasicHttpContext();
        HttpPost httpPost = new HttpPost(URLIMG);
        try{

            MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();
            multipartEntity.addPart("userfile", new FileBody(new File(file.getPath())));
            // Send it
            httpPost.setEntity(multipartEntity.build());
            Log.e("post" , httpPost.toString());
            HttpResponse response = httpClient.execute(httpPost, httpContext);
            String serverResponse = EntityUtils.toString(response.getEntity());
            Log.e("sd","serverResponse = "+serverResponse);
        }catch (Exception e)
        {
            Log.e("Exception", "Exception: " + e.toString());
        }
    }catch (Exception e)
    {
        Log.e("Exception", "Exception: " + e.toString());
        e.printStackTrace();
    }

我的日志是:

01-04 18:15:13.881 15372-15372/com.example.hp_pc.cerv E/AndroidRuntime: FATAL EXCEPTION: main
                                                                    Process: com.example.hp_pc.cerv, PID: 15372
                                                                    java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/entity/ContentType;
                                                                        at org.apache.http.entity.mime.content.FileBody.<init>(FileBody.java:89)

1 个答案:

答案 0 :(得分:0)

自v4.2起,http {1}}可用于httpcore。你最有可能使用错误的httpcore版本。

要解决此问题,请在工件存储库中搜索正确版本的httpcore,在您的情况下为ContentType.java4.2.2并将其与您当前的版本进行交换。

在不了解您的构建系统的情况下,也可能是您没有发送httpcore.jar的情况。在这种情况下,请确保使用与其他两个罐相同的机制。

要防止出现这类问题,请使用现代构建系统的依赖关系管理功能,在您的情况下很可能download it或至少保留jar文件的版本号。