问题
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;
回答1:
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.
回答2:
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
来源:https://stackoverflow.com/questions/32071025/apache-http-connection-with-android-6-0-marshmallow