29

Is there is any way to include the Apache library directly in Gradle to make it work with Android 6.0 ?

I've tried to include the libraries like that:

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

And Android Studio couldn't manage to find the following import:

import org.apache.http.auth.AuthenticationException;
import org.apache.http.auth.Credentials;
import org.apache.http.auth.MalformedChallengeException;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.impl.auth.DigestScheme;
Hrk
  • 2,725
  • 5
  • 29
  • 44

2 Answers2

57

This page discusses the removal of the Apache HTTP classes, and it suggests a workaround as well:

To continue using the Apache HTTP APIs, you must first declare the following compile-time dependency in your build.gradle file:

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

In my case Android Studio still complained that it couldn't find these classes, but the app did build and run.

The page does recommend you move to HttpURLConnection, though.

benvd
  • 5,776
  • 5
  • 39
  • 59
1

According to the API 22-23 diff changes, the org.apache.http.* packages have been removed as of Android 6.0 (Marshmallow) API Level 23.

http://developer.android.com/sdk/api_diff/23/changes.html

via : http://android-developers.blogspot.co.uk/2015/08/m-developer-preview-3-final-sdk.html

Kosso
  • 324
  • 1
  • 3
  • 11