【发布时间】:2015-10-17 15:11:58
【问题描述】:
背景
在 Android Marshmallow 上,Google 已经完全取消了对 Apache HTTP 客户端的支持(链接here),因为与替代品相比,它的性能并不好。
这也可能是许多应用在 Android Marshmallow 上崩溃的原因。
问题
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 Marshmallow 更改的事情,我们不希望崩溃形式的惊喜。
截图如下:
问题
为什么会发生?我正确使用了吗?
编辑:在这里报告了这个问题:
【问题讨论】:
-
编译得很好你的意思是 gradle 同步得很好,或者你在运行时得到一个 ClassNotFoundException 吗?
-
你能发一些android studioat的截图
-
@Blackbelt 我的意思是,在我编写应该支持的类之前,它可以编译并运行良好(因为没有什么可以使用它)。不可能有任何 ClassNotFoundException,因为我还没有使用它们。只有当我尝试使用应该存在的类时,我不能。它不允许我这样做,也没有为我提供所需的导入。
-
@user4847410 截图到底是什么?试图强行输入会导致它不被识别。并且使用那里存在的类也可以。无论如何,我已经更新了问题以显示当前情况,这是非常小的......
-
检查您是否使用最新的 beta gradle。依赖项 { classpath 'com.android.tools.build:gradle:1.3.0' } 版本之后似乎缺少某些东西(即'-beta'或其他东西)。使用最新的测试版为我解决了这个问题
标签: java android android-gradle-plugin android-6.0-marshmallow