Android Gradle项目中的问题包括Apache HttpComponents

拉格

我尝试使用build.gradle文件将httpmime包含在我的应用程序中,并且一切正常。相反,当应用程序尝试实际使用MultipartEntityBuilder类时,日志上有一堆WARN级别消息,提示存在问题。

这是我的build.gradle的依赖摘录:

    编译('org.apache.httpcomponents:httpmime:4. +'){
        排除模块:“ httpclient”
    }

错误如下:

10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:无法解析Lorg / apache / http / entity / ContentType中的静态字段6967(DEFAULT_BINARY);
10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:找不到签名中引用的类(Lorg / apache / http / entity / ContentType;)
10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:找不到签名中引用的类(Lorg / apache / http / entity / ContentType;)
10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:无法解析Lorg / apache / http / entity / ContentType中的静态字段6967(DEFAULT_BINARY);
10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:找不到签名中引用的类(Lorg / apache / http / entity / ContentType;)
10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:找不到签名中引用的类(Lorg / apache / http / entity / ContentType;)
10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:无法解析Lorg / apache / http / entity / ContentType中的静态字段6967(DEFAULT_BINARY);
10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:找不到签名中引用的类(Lorg / apache / http / entity / ContentType;)
10-09 13:39:37.367 2409-2426 / com.company.app W / dalvikvm:VFY:找不到签名中引用的类(Lorg / apache / http / entity / ContentType;)
10-09 13:39:37.377 2409-2426 / com.company.app W / dalvikvm:VFY:无法解析静态方法19478:Lorg / apache / http / util / Args; .notNull(Ljava / lang / Object; Ljava / lang / String;)Ljava / lang / Object;
10-09 13:39:37.377 2409-2426 / com.company.app W / dalvikvm:VFY:无法解析Lorg / apache / http / entity / ContentType中的静态字段6968(DEFAULT_TEXT);
10-09 13:39:37.377 2409-2426 / com.company.app W / dalvikvm:VFY:找不到签名中引用的类(Lorg / apache / http / entity / ContentType;)
10-09 13:39:37.377 2409-2426 / com.company.app W / dalvikvm:VFY:找不到签名中引用的类(Lorg / apache / http / entity / ContentType;)

java类:

导入android.util.Log;

导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入java.net.HttpURLConnection;
导入java.net.URL;

导入org.apache.http.HttpEntity;
导入org.apache.http.entity.mime.MultipartEntityBuilder;

公共类FileUploader {
    private final static String BOUNDARY =“ __--__--__ SERVETHEOVERMIND -__-_”;

    public void uploadFile(String targetUrl,MultipartEntityBuilder upload,之后的UploadHandler){
        Log.v(“ FileUploader”,“上传到” + targetUrl);

        HttpURLConnection con = null;
        OutputStream os = null;
        InputStream为= null;

        尝试{
            HttpEntity uploadEntity = upload.build();
            URL postTo =新URL(targetUrl);
            con =(HttpURLConnection)postTo.openConnection();

            con.setRequestMethod(“ POST”);
            con.setRequestProperty(“ Content-Type”,“ multipart / form-data; boundary =” + BOUNDARY);;
            con.setDoOutput(true);
            con.setDoInput(true);
            con.setUseCaches(false);

            con.addRequestProperty(“ Connection”,“保持活动”);
            con.setRequestProperty(“ Content-length”,String.valueOf(uploadEntity.getContentLength()));

            os = con.getOutputStream();
            uploadEntity.writeTo(os);
            os.close();

            con.connect();
            是= con.getInputStream();

            after.consumeUploadResponse(is);
            con.disconnect();
        } catch(IOException e){
            e.printStackTrace();
        }

        if(con!= null){
            con.disconnect();
        }

        if(os!= null){
            尝试{
                os.close();
            } catch(IOException e){
                Log.v(“ Uploader”,“ Closed output stream”);
            }
        }

        if(is!= null){
            尝试{
                is.close();
            } catch(IOException e){
                Log.v(“ Uploader”,“ Closed input stream”);
            }
        }
    }

    公共接口UploadHandler {
        公共无效的consumpUpUpResponse(InputStream流);
    }
}

[编辑]正确的依存关系,按照答案

编译('org.apache.httpcomponents:httpmime:4. +'){
    排除模块:“ httpclient”
}
编译('org.apache.httpcomponents:httpcore:4. +'){
    排除模块:“ httpclient”
}

[第二编辑]仍然有问题-现在是这些其他缺失的部分,但是在后端可能有问题:

10-10 11:51:54.998 29597-29638 / com.company.app W / dalvikvm:VFY:无法解析Lorg / apache / http / message / BasicHeaderValueParser中的静态字段7465(INSTANCE);
10-10 11:51:54.998 29597-29638 / com.company.app W / dalvikvm:VFY:无法解析Lorg / apache / http / message / BasicHeaderValueFormatter中的静态字段7459(INSTANCE);

[还有另一个编辑]

在这种情况下,似乎剩下的最后一点对成功使用MultipartEntityBuilder没有任何影响。

加里·基普尼斯

您需要将httpcore-4.3.jar添加到Java构建路径。我遇到了同样的问题,添加了这个罐子之后,它消失了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Gradle错误:找不到org.apache.httpcomponents:httpclient-android:4.3.5.1

来自分类Dev

Gradle错误:找不到org.apache.httpcomponents:httpclient-android:4.3.5.1

来自分类Dev

Apache HttpComponents。获取CONNECT请求的响应

来自分类Dev

Apache HttpComponents代码导致线程阻塞

来自分类Dev

如何使用 Apache HttpComponents Client 请求 CONNECT

来自分类Dev

警告:使用jfrog和android-maven-plugin时,将忽略org.apache.httpcomponents:httpclient:4.2.1依赖项

来自分类Dev

SonarQube没有从Android Gradle项目中收集问题

来自分类Dev

如何使用Apache HTTPComponents HttpClient在HTTP请求中启用SNI?

来自分类Dev

使用Apache HttpComponents HttpClient测量带宽使用情况

来自分类Dev

使用Apache HttpComponents Client签署AWS HTTP请求

来自分类Dev

正确的方法来关闭阻止HTTP服务器的Apache httpcomponents

来自分类Dev

将Apache httpcomponents从4.1.x升级到4.3.x

来自分类Dev

Maven嵌入式部署不适用于org.apache.httpcomponents.httpclient版本4.4

来自分类Dev

是否可以使用Apache HttpComponents POST到位于特定IP地址上的主机?

来自分类Dev

java HttpClient.execute(get)中的Apache HttpComponents什么都不做

来自分类Dev

在我自己的项目中包括Android Wheel Kankan项目

来自分类Dev

在我自己的项目中包括Android Wheel Kankan项目

来自分类Dev

Android Studio项目中的gradle目录

来自分类Dev

Android Studio:包括库项目中的AAR库

来自分类Dev

在Xamarin C#的android项目中包括外部字体ttf

来自分类Dev

如何在Android Gradle项目中更改项目构建目标

来自分类Dev

使Apache httpcomponents HttpClient 4.3.x OSGi捆绑软件在Apache Karaf 2.3.x上运行时出现问题

来自分类Dev

Eclipse-无法完成安装,因为找不到一个或多个必需项(org.apache.httpcomponents.httpclient)

来自分类Dev

适用于Android项目集(包括库)的Gradle构建

来自分类Dev

用gradle在android项目中生成资产

来自分类Dev

如何使用Gradle在我的Android项目中使用库?

来自分类Dev

如何在Android Library Gradle项目中包含依赖项?

来自分类Dev

在基于Android Gradle的项目中设置集成测试

来自分类Dev

Android Gradle-如何包含根项目中的资产?

Related 相关文章

  1. 1

    Gradle错误:找不到org.apache.httpcomponents:httpclient-android:4.3.5.1

  2. 2

    Gradle错误:找不到org.apache.httpcomponents:httpclient-android:4.3.5.1

  3. 3

    Apache HttpComponents。获取CONNECT请求的响应

  4. 4

    Apache HttpComponents代码导致线程阻塞

  5. 5

    如何使用 Apache HttpComponents Client 请求 CONNECT

  6. 6

    警告:使用jfrog和android-maven-plugin时,将忽略org.apache.httpcomponents:httpclient:4.2.1依赖项

  7. 7

    SonarQube没有从Android Gradle项目中收集问题

  8. 8

    如何使用Apache HTTPComponents HttpClient在HTTP请求中启用SNI?

  9. 9

    使用Apache HttpComponents HttpClient测量带宽使用情况

  10. 10

    使用Apache HttpComponents Client签署AWS HTTP请求

  11. 11

    正确的方法来关闭阻止HTTP服务器的Apache httpcomponents

  12. 12

    将Apache httpcomponents从4.1.x升级到4.3.x

  13. 13

    Maven嵌入式部署不适用于org.apache.httpcomponents.httpclient版本4.4

  14. 14

    是否可以使用Apache HttpComponents POST到位于特定IP地址上的主机?

  15. 15

    java HttpClient.execute(get)中的Apache HttpComponents什么都不做

  16. 16

    在我自己的项目中包括Android Wheel Kankan项目

  17. 17

    在我自己的项目中包括Android Wheel Kankan项目

  18. 18

    Android Studio项目中的gradle目录

  19. 19

    Android Studio:包括库项目中的AAR库

  20. 20

    在Xamarin C#的android项目中包括外部字体ttf

  21. 21

    如何在Android Gradle项目中更改项目构建目标

  22. 22

    使Apache httpcomponents HttpClient 4.3.x OSGi捆绑软件在Apache Karaf 2.3.x上运行时出现问题

  23. 23

    Eclipse-无法完成安装,因为找不到一个或多个必需项(org.apache.httpcomponents.httpclient)

  24. 24

    适用于Android项目集(包括库)的Gradle构建

  25. 25

    用gradle在android项目中生成资产

  26. 26

    如何使用Gradle在我的Android项目中使用库?

  27. 27

    如何在Android Library Gradle项目中包含依赖项?

  28. 28

    在基于Android Gradle的项目中设置集成测试

  29. 29

    Android Gradle-如何包含根项目中的资产?

热门标签

归档