Android 6.0 SDK 找不到HttpClient的解决方法

一、情况描述

    在eclipse或Android Studio开发时(笔者目前只用过Android Studio),设置Android SDK的编译版本为23时,且使用了httpClient相关类的库项目时:如Android-async-http时,会出现有一些类找不到的错误,或者找不到HttpClient类。

二、原因

    android 6.0 (api 23)SDK,不再提供org.apache.http.*(只保留几个类)。

三、解决方法

1.eclipse

libs中加入 org.apache.http.legacy.jar

上面的jar包在:**\android-sdk-windows\platforms\android-23\optional下(需要下载android 6.0的SDK)

 

2.android studio:

在相应的,module下的build.gradle中加入:

android{

      useLibrary 'org.apache.http.legacy'

}

如图:

四、HttpClient会在谷歌的安卓中消失的原因

    一开始,谷歌安卓新出,库中自带HttpClient 4.0 测试预览版。为与安卓保持API同步,HTTPClient不敢打动干戈。后来,HTTPCient 4.0逐渐成熟,Apache欲使Android跟进更新对应的库,Android拒绝了。然而旧库bug丛生,瑕疵遍地。故,今Apache新出一个HTTPClient for android。

    那既然Android自带的不好,为啥不直接导入Apache的呢?因为包名是一样的,库冲突。不是不能解决,也能,据说比较麻烦(笔者没试过)。从Apache下载最新的httpclient源码,把每个源文件包名改了,改成Android不冲突的。然后打包成jar文件,然后导入到Android工程的lib里。

    现在,Android 6.0 已经移除了httpClient,于是我们可以从Apache下载HttpClient,然后导入到lib中,不用改名了。

 

更具体的解释说明请点击:点击打开链接

posted @ 2016-10-26 19:20  旧巷里的旧少年  阅读(6210)  评论(0编辑  收藏  举报