Android M 开发者预览版中的 Volley:org.apache.http 无法解析
Volley in Android M developer preview: org.apache.http cannot be resolved
我正在 Android M Developer Preview 中测试 Volley 的 HurlStack。
我把compileSdkVersion
从22
改成'android-MNC'
后,org.apache.http的所有类都没有编译:
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
import org.apache.http.entity.BasicHttpEntity;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicHttpResponse;
import org.apache.http.message.BasicStatusLine;
如何修改我的代码来解决这个问题?
我知道有一些与 Apache HTTP 客户端相关的更改,但是当我按照步骤在 gradle 中添加 useLibrary 'org.apache.http.legacy'
时它仍然不起作用。
官方“行为变更”文档states that the Apache HTTP client is removed in Android M — not deprecated, but removed. Personally I highly suggest switching to OkHttp,自 KitKat 以来实际上用作 HttpURLConnection
引擎,通过使用依赖项,您可以直接从 Square 团队获得所有新鲜的东西。
除了使用 okHttp 之外,后备方案是使用 Google 建议的旧版 apache httpclient。
请在此处查看我的回答以使其正常工作。
你可以忽略这些警告,因为 Volley 仍然使用 API 22 编译:
https://github.com/mcxiaoke/android-volley/blob/master/gradle.properties
在 proguard 配置中添加这些:
-dontwarn org.apache.http.**
-dontwarn com.android.volley.toolbox.**
如果像我一样,您包含 HttpClient 的唯一原因是因为您正在测试 HTTP 响应代码:
if (error.networkResponse.statusCode == HttpStatus.SC_UNAUTHORIZED) {}
然后一个简单的修复就是使用 HttpURLConnection class:
中常量的版本
if (error.networkResponse.statusCode == HttpURLConnection.HTTP_UNAUTHORIZED) {}
我正在 Android M Developer Preview 中测试 Volley 的 HurlStack。
我把compileSdkVersion
从22
改成'android-MNC'
后,org.apache.http的所有类都没有编译:
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ProtocolVersion;
import org.apache.http.StatusLine;
import org.apache.http.entity.BasicHttpEntity;
import org.apache.http.message.BasicHeader;
import org.apache.http.message.BasicHttpResponse;
import org.apache.http.message.BasicStatusLine;
如何修改我的代码来解决这个问题?
我知道有一些与 Apache HTTP 客户端相关的更改,但是当我按照步骤在 gradle 中添加 useLibrary 'org.apache.http.legacy'
时它仍然不起作用。
官方“行为变更”文档states that the Apache HTTP client is removed in Android M — not deprecated, but removed. Personally I highly suggest switching to OkHttp,自 KitKat 以来实际上用作 HttpURLConnection
引擎,通过使用依赖项,您可以直接从 Square 团队获得所有新鲜的东西。
除了使用 okHttp 之外,后备方案是使用 Google 建议的旧版 apache httpclient。 请在此处查看我的回答以使其正常工作。
你可以忽略这些警告,因为 Volley 仍然使用 API 22 编译: https://github.com/mcxiaoke/android-volley/blob/master/gradle.properties
在 proguard 配置中添加这些: -dontwarn org.apache.http.** -dontwarn com.android.volley.toolbox.**
如果像我一样,您包含 HttpClient 的唯一原因是因为您正在测试 HTTP 响应代码:
if (error.networkResponse.statusCode == HttpStatus.SC_UNAUTHORIZED) {}
然后一个简单的修复就是使用 HttpURLConnection class:
中常量的版本if (error.networkResponse.statusCode == HttpURLConnection.HTTP_UNAUTHORIZED) {}