背景
在Android Marshmallow上,Google已完全删除了对Apache HTTP客户端的支持(链接此处),因为与其他替代品相比,它的性能不佳。
这也可能是导致Android Marshmallow上许多应用程序崩溃的原因。
问题
通过将以下行添加到gradle文件中,Google允许您仍然使用此API,而不是内置API:
useLibrary 'org.apache.http.legacy'
所以,这就是我所做的:
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
和:
android {
compileSdkVersion 'android-MNC'
buildToolsVersion "23.0.0 rc3"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "com.example.user.androidmtest"
minSdkVersion 'MNC'
targetSdkVersion 'MNC'
versionCode 1
versionName "1.0"
}
当我尝试它时,它可以很好地编译(没有错误显示,并且我可以运行概念验证应用程序,因为它没有任何特殊的代码),但是当我尝试使用一些我知道的类时,是旧版API(例如“ HttpClient”类)的一部分,我发现它不允许这样做。
我知道不建议您使用此解决方案,但是我们必须至少暂时准备好该应用程序,直到我们100%应对Android Marshmallow应当更改的所有事情,并且我们不希望出现意外情况崩溃的形式。
这是屏幕截图:
问题
为什么会发生?我使用正确了吗?
编辑:在此报告有关此问题的信息: