更新org.apache.httpcomponents后出现问题

时间:2019-09-16 21:51:12

标签: java android gradle

当我使用org.apache.httpcomponents旧库时,我的应用程序可以正常运行,但是某些手机不能正常运行。 我该怎么办

implementation files('libs/httpclient-4.3.6.jar')
implementation files('libs/httpcore-4.3.3.jar')
implementation files('libs/httpmime-4.3.6.jar')

然后我想更新其库,然后使用了该版本。 我做对了吗

implementation 'org.apache.httpcomponents:httpclient:4.5.10'
implementation  'org.apache.httpcomponents:httpcore:4.4.12'
implementation  'org.apache.httpcomponents:httpmime:4.5.10'

此后,所有这些电话停止工作。 请给我任何建议

private String uploadFile() {
        String responseString = null;

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(Config.FILE_UPLOAD_URL);

        try {
            AndroidMultiPartEntity entity = new AndroidMultiPartEntity(
                    new ProgressListener() {

                        @Override
                        public void transferred(long num) {
                            publishProgress((int) ((num / (float) totalSize) * 100));
                        }
                    });

            File sourceFile = new File(filePath);
            entity.addPart("", new FileBody(sourceFile));

   totalSize = entity.getContentLength();
            httppost.setEntity(entity);

            // Making server call
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity r_entity = response.getEntity();

            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 200) {
                // Server response
                responseString = EntityUtils.toString(r_entity);
            } else {
                responseString = "Error occurred! Http Status Code: "
                        + statusCode;
            }

        } catch (ClientProtocolException e) {
            responseString = e.toString();
        } catch (IOException e) {
            responseString = e.toString();
        }

        return responseString;

    }

错误如 请给我任何建议

 Process: co.com.aashriyatechnology.chowkidar, PID: 11236
java.lang.RuntimeException: An error occurred while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:353)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
    at java.util.concurrent.FutureTask.run(FutureTask.java:271)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
 Caused by: java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/message/BasicHeaderValueFormatter; in class Lorg/apache/http/message/BasicHeaderValueFormatter; or its superclasses (declaration of 'org.apache.http.message.BasicHeaderValueFormatter' appears in /system/framework/org.apache.http.legacy.boot.jar)
    at org.apache.http.entity.ContentType.toString(ContentType.java:201)
    at org.apache.http.entity.mime.MultipartFormEntity.<init>(MultipartFormEntity.java:56)
    at org.apache.http.entity.mime.MultipartEntityBuilder.buildEntity(MultipartEntityBuilder.java:236)
    at org.apache.http.entity.mime.MultipartEntity.getEntity(MultipartEntity.java:119)
    at org.apache.http.entity.mime.MultipartEntity.getContentLength(MultipartEntity.java:150)
    at co.com.aashriyatechnology.chowkidar.ui.UploadActivity$UploadFileToServer.uploadFile(UploadActivity.java:382)
    at co.com.aashriyatechnology.chowkidar.ui.UploadActivity$UploadFileToServer.doInBackground(UploadActivity.java:351)
    at co.com.aashriyatechnology.chowkidar.ui.UploadActivity$UploadFileToServer.doInBackground(UploadActivity.java:329)
    at android.os.AsyncTask$2.call(AsyncTask.java:333)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
    at java.lang.Thread.run(Thread.java:764)

0 个答案:

没有答案