从 Android M 上看,Google 已经完全取消了对 Apache HTTP 客户端的支持(链接 这里) ,因为与其他替代方案相比,它的性能并不好。
这可能也是许多应用程序在 Android M 上崩溃的原因。
Google 允许你继续使用这个 API,只不过不是作为一个内置的 API,方法是将这一行添加到 gradle 文件中:
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 M,我们不希望出现意外的崩溃。
下面是一个截图:
为什么会这样? 我用对了吗?
编辑: 这里报道了这个问题: