1、状况描述html
在eclipse或Android Studio开发时(笔者目前只用过Android Studio),设置Android SDK的编译版本为23时,且使用了httpClient相关类的库项目时:如Android-async-http时,会出现有一些类找不到的错误,或者找不到HttpClient类。android
2、缘由apache
android 6.0 (api 23)SDK,再也不提供org.apache.http.*(只保留几个类)。windows
3、解决方法api
1.eclipseeclipse
libs中加入 org.apache.http.legacy.jarasync
上面的jar包在:**\android-sdk-windows\platforms\android-23\optional下(须要下载android 6.0的SDK)测试
2.android studio:gradle
在相应的,module下的build.gradle中加入:ui
android{
useLibrary 'org.apache.http.legacy'
}
如图:
4、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中,不用更名了。
更具体的解释说明请点击:点击打开连接