API 27中Apache HTTP库无法使用,HttpClient类找不到求助
解决 HttpClient 类找不到的问题(Android Studio 3.x + targetSdkVersion 27)
我之前也碰到过一模一样的情况——明明按要求加了useLibrary配置,代码里的HttpClient还是红得刺眼,给你几个亲测有效的排查和解决方向:
先确认配置的位置和格式是否正确
很多人会不小心把配置放错地方,导致完全不生效。你要确保useLibrary是直接写在app模块build.gradle的android代码块里,而不是嵌套在defaultConfig里面,正确格式如下:android { compileSdkVersion 27 defaultConfig { applicationId "com.your.app.package" minSdkVersion ... targetSdkVersion 27 // 其他默认配置... } // 就在这里添加,别放错位置! useLibrary 'org.apache.http.legacy' }清理缓存并重建项目
Android Studio的缓存有时候会“抽风”,即使配置正确也没同步到索引里。试试这几步:- 点击顶部菜单栏
Build→Clean Project - 接着执行
Build→Rebuild Project - 如果还是不行,就用
File→Invalidate Caches...,勾选所有选项后重启AS
- 点击顶部菜单栏
直接添加Apache HttpClient兼容依赖
要是上面的方法都没用,那就直接在dependencies块里引入官方的兼容库,比useLibrary更稳妥:dependencies { // 其他项目依赖... implementation 'org.apache.httpcomponents:httpclient-android:4.3.5.1' }同步项目后,标红问题应该就能解决了。
长远建议:换成官方推荐的替代方案
毕竟Apache HttpClient从Android 6.0开始就被官方弃用了,targetSdkVersion升到27后兼容性问题会更明显。推荐你换成HttpURLConnection(官方原生),或者更易用的第三方库OkHttp,后者处理网络请求更简洁高效,还能彻底避免这类兼容性坑。
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

