45

我已经加入这一行到我的build.gradleApache的HttpClient的安卓(摇篮)

compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5' 

,我想在我的代码使用MultipartEntityBuilder。但是Android Studio不会将库添加到我的代码中。 任何人都可以帮助我吗?

+0

是在顶级'依赖关闭?你有'mavenCentral()'配置在顶级'版本库'关闭吗? – CommonsWare 2014-09-24 19:29:24

+0

@CommonsWare我是新来的,你能解释更多吗?顶级关闭是什么意思?以及如何检查mavencentral是否在那里配置 – 2014-09-24 19:33:42

+0

鉴于您在以下一个答案的评论中报告的错误,您已经设置了这些部分。 – CommonsWare 2014-09-24 19:37:35

回答

112

如果你正在使用的目标SDK作为23在你的build.gradle

android{ 
useLibrary 'org.apache.http.legacy' 
} 

附加的注释在此处添加下面的代码:不要尝试使用这些文件的版本的Gradle。他们被打破(28.08.15)。我试了5个多小时才开始工作。它只是没有。 不工作:

compile 'org.apache.httpcomponents:httpcore:4.4.1' 
compile 'org.apache.httpcomponents:httpclient:4.5' 

另一件事使用:

'org.apache.httpcomponents:httpclient-android:4.3.5.1' 

其提到21 API级别。

+0

它不只是目标SDK,也发生如果你使用编译SDK 23,和proguard仍然会抛出错误,以及 – 2015-08-21 21:24:31

+0

添加这三个罐子后,我的项目已经谷歌播放服务,fbook sdk,appcompat_v7,所以我得到了错误65K的方法,你可以请建议上述库的proguard? – Chitrang 2015-08-24 11:11:05

+0

@Chitrang你也可以让你的应用multidex;):) – cV2 2015-08-28 12:23:23

6

尝试增加给你的依赖关系:

compile 'org.apache.httpcomponents:httpclient:4.4-alpha1' 

而且一般如果你想使用一个库,你正在寻找的摇篮依赖行,你可以使用Gradle Please

编辑:检查this一个太。

+0

我得到这个错误:依靠包装来定义主神器的扩展已弃用并计划在Gradle 2.0中删除 警告:依赖org.apache.httpcomponents:httpclient:4.4-alpha1在调试时会被忽略,因为它可能与Android提供的内部版本冲突。 如有问题,请用jarjar重新包装,以改变课程包 – 2014-09-24 19:31:57

+0

然后,如果它已包含在Android系统中,没有理由添加! – Pavlos 2014-09-24 19:33:24

+0

但我无法导入图书馆 – 2014-09-24 19:34:10

23

接受的答案对我来说似乎不太合适。当可以依赖相同版本的HttpMime时,没有必要拖动不同版本的HttpMime。

compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5' 
compile (group: 'org.apache.httpcomponents' , name: 'httpmime' , version: '4.3.5') { 
    exclude module: 'org.apache.httpcomponents:httpclient' 
} 
+0

我结束了下载jar文件,因为我不能从gradle得到正确的版本 – 2014-09-29 17:51:28

+0

这就是我告诉你和你不接受我的回答 – Pavlos 2014-09-29 18:16:55

+0

这对我有效在API级别22. – 2015-11-04 06:38:17

0

我不知道为什么,但(现在)httpclient可以编译只作为一个罐子到项目的libs目录。 HttpCore当从这样的MVN包括正常工作:

dependencies { 
     compile 'org.apache.httpcomponents:httpcore:4.4.3' 
} 
6

别人没有为我工作。我不得不添加下面的依赖,通过添加以下到我的build.gradle文件

android { 
useLibrary 'org.apache.http.legacy'} 

然而这个解释here

compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1' 

,因为我是针对API 23

+0

这真的是最好的选择,很难看到它如此之低。我描述了为什么它是更好的遗留罐子和无论在这里:http://stackoverflow.com/a/37623038/1727132 – Jehy 2016-06-05 20:15:25

+0

同样的情况下,我不得不做同样的 – 2016-07-28 11:08:47

4

我解决问题只有在使用gradle 1.3时才有效。0-β2或更大,所以你将不得不增加这一点,如果你是在一个较低的版本buildscript依赖关系:

classpath 'com.android.tools.build:gradle:1.3.0-beta2' 
0

工作gradle这个依赖

试试这个:

compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'

1

我搜索一遍又一遍这个解决方案就像一个魅力::

apply plugin: 'com.android.application' 
    android { 
     compileSdkVersion 25 
     buildToolsVersion "25.0.3" 
     defaultConfig { 
      applicationId "com.anzma.memories" 
      useLibrary 'org.apache.http.legacy' 
      minSdkVersion 15 
      targetSdkVersion 25 
      versionCode 1 
      versionName "1.0" 
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     } 
packagingOptions { 
      exclude 'META-INF/DEPENDENCIES.txt' 
      exclude 'META-INF/LICENSE.txt' 
      exclude 'META-INF/NOTICE.txt' 
      exclude 'META-INF/NOTICE' 
      exclude 'META-INF/LICENSE' 
      exclude 'META-INF/DEPENDENCIES' 
      exclude 'META-INF/notice.txt' 
      exclude 'META-INF/license.txt' 
      exclude 'META-INF/dependencies.txt' 
      exclude 'META-INF/LGPL2.1' 
     } 
    buildTypes { 
      release { 
       minifyEnabled false 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      } 
     } 
    } 
    dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile('org.apache.httpcomponents:httpmime:4.3.6') { 
      exclude module: 'httpclient' 
     } 
     compile 'org.apache.httpcomponents:httpclient-android:4.3.5' 
     compile 'com.android.support:appcompat-v7:25.3.1' 
     testCompile 'junit:junit:4.12' 
    } 
+0

为了将来的参考请分开答案的文字部分代码,以提高答案的可读性和质量。 – 2017-09-25 16:19:16

+0

做了感谢的建议@MirzaSisic – 2017-09-25 17:47:44