title: java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager
body: <p>I am using an API from Mashape in an Android application. Mashape recommends using the Unirest library. I have included the dependencies mentioned on the unirest link: <a href="http://unirest.io/java" rel="noreferrer">http://unirest.io/java</a> </p>
  
  <p>My Dependencies:</p>
  
  <pre><code>compile fileTree(dir: 'libs', include: ['*.jar'])
  compile group:'com.mashape.unirest', name:'unirest-java', version:'1.3.26'
  compile group:'org.apache.httpcomponents', name:'httpcore', version:'4.3.3'
  compile group:'org.apache.httpcomponents', name:'httpclient', version:'4.3.6'
  compile group:'org.apache.httpcomponents', name:'httpasyncclient', version:'4.0.2'
  compile group:'org.apache.httpcomponents', name:'httpmime', version:'4.3.5'
  compile group:'org.json', name:'json', version:'20141113'
  compile 'com.android.support:appcompat-v7:21.0.+'
  </code></pre>
  
  <p>I still get this error when I make a HTTPRequest:</p>
  
  <pre><code>Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager
      at com.mashape.unirest.http.HttpClientHelper.prepareRequest(HttpClientHelper.java:153)
      at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:133)
      at com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:68)
  Disconnected from the target VM, address: '127.0.0.1:58805', transport: 'socket'
  
  Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.HttpClientConnectionManager
      at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      ... 5 more
  </code></pre>
  
  <p>My java code is simple:</p>
  
  <pre><code>HttpResponse&lt;JsonNode&gt; response = Unirest.get("https://testlink/all")
                      .header("X-Mashape-Key", TEST_KEY)
                      .asJson();
  </code></pre>
  
  <p>Could you please help me solve this issue? Thanks for your help!</p>
  
  <hr>
  
  <p><strong>UPDATE:</strong>
  As per secondo's suggestion I changed the httpclient to httpclient-android. My dependencies look like this now:</p>
  
  <pre><code>    compile fileTree(dir: 'libs', include: ['*.jar'])
      compile group:'com.mashape.unirest', name:'unirest-java', version:'1.3.26'
      compile group:'org.apache.httpcomponents', name:'httpclient-android', version:'4.3.5'
      compile group:'org.apache.httpcomponents', name:'httpcore', version:'4.3.3'
      compile group:'org.apache.httpcomponents', name:'httpcore-nio', version:'4.3.3'
      compile group:'org.apache.httpcomponents', name:'httpasyncclient', version:'4.0.2'
      compile group:'org.apache.httpcomponents', name:'httpmime', version:'4.3.5'
      compile group:'org.json', name:'json', version:'20141113'
      compile 'com.android.support:appcompat-v7:21.0.0'
  </code></pre>
  
  <p>After rebuilding the project and running it, I get this error:</p>
  
  <pre><code>Error:Gradle: Execution failed for task ':app:dexDebug'.
  &gt; com.android.ide.common.internal.LoggedErrorException: Failed to run command:
      H:\IDEs\Android\android-sdk\sdk\build-tools\21.1.1\dx.bat --dex --output H:\workspace\app\build\intermediates\dex\debug H:\workspace\app\build\intermediates\classes\debug H:\workspace\app\build\intermediates\dependency-cache\debug H:\workspace\app\build\intermediates\pre-dexed\debug\classes-4bcf10ca50c0eb5fadc28458c4bdfc2547896050.jar H:\workspace\app\build\intermediates\pre-dexed\debug\classes-5f3630f6ee4db4f375d08625dd3729b85011cca4.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpasyncclient-4.0.2-5690889a573efdb127c3d5c2454e7a393211dee6.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpclient-android-4.3.5-1f1bd070e63b095d84e38ae09b61037bfca0f0ab.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpcore-4.3.3-ee2fa72794df9164a47403637dad2f0f578b8086.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpcore-nio-4.3.3-a277a34ed4caa7515de7b22c51b9b5f43eb3a9ac.jar H:\workspace\app\build\intermediates\pre-dexed\debug\httpmime-4.3.5-ed96b5f192c9ed4e3cca5097f8fe8a3d2a673970.jar H:\workspace\app\build\intermediates\pre-dexed\debug\internal_impl-21.0.0-529c245f53e03251f5328b23447088bd0d76c596.jar H:\workspace\app\build\intermediates\pre-dexed\debug\support-annotations-21.0.0-bc18e9201600d41ee5718ce129ef80828a7bb5d5.jar H:\workspace\app\build\intermediates\pre-dexed\debug\unirest-java-1.3.26-7ee6377b956e1b237982bd82965679bf6e0a7fa9.jar
  Error Code:
      2
  Output:
      UNEXPECTED TOP-LEVEL EXCEPTION:
      com.android.dex.DexException: Multiple dex files define Lorg/apache/http/Consts;
          at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
          at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
          at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
          at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
          at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
          at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
          at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
          at com.android.dx.command.dexer.Main.run(Main.java:245)
          at com.android.dx.command.dexer.Main.main(Main.java:214)
          at com.android.dx.command.Main.main(Main.java:106)
  </code></pre>