BNK*_*BNK 22 apache android httpresponse android-volley android-api-levels
正如我们所知,Apache HTTP Client
已在API 23中删除
但是,Volley
库目前仍然使用Apache
的库如
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.impl.cookie.DateUtils;
Run Code Online (Sandbox Code Playgroud)
我测试了2个项目:一个用于compileSdkVersion 22
,另一个用于compileSdkVersion 23
获得2个截图:
compileSdkVersion 22
compileSdkVersion 23
我有两个问题:
Apache
在运行时使用该库,他们是在API22或更低版本中找到的?Apache
图书馆吗?如果没有,当Apache
我的图书馆完全删除并且不受支持时,我现在的项目是否仍会继续使用?也许我的英语不太清楚,但希望你能理解我的问题.
任何解释将不胜感激.
更新:
从@ random的评论中,我使用谷歌的官方Volley库创建了一个新的API23项目(我的意思git clone https://android.googlesource.com/platform/frameworks/volley
是谷歌建议的这里),而不是compile 'com.mcxiaoke.volley:library:1.0.17'
在build.gradle
文件中使用.是的,在构建项目时因缺少Apache库而出错.必须按文档添加useLibrary 'org.apache.http.legacy'
到build.gradle
文件中.
第二次更新:
我刚刚定制了谷歌的排球(作为我项目中的一个模块),删除了Apache库.请转到我的GitHub示例项目供您参考.但请注意,它尚未针对所有情况进行全面测试,并且我仅测试了02个简单案例:GET
并且POST
我的Web服务请求是ASP.NET Web API
.
ran*_*dom 10
Android M中的Volley库似乎已经相当混乱了.已经为它提交了一个bug并得到谷歌的认可.
https://code.google.com/p/android-developer-preview/issues/detail?id=3013
您应该标记并跟踪它以进行任何进一步的更新
UPDATE
关于您的第一个问题,您不会因丢失apache
文件而出错,因为您正在使用的库仍然使用API 22编译
ANDROID_BUILD_TARGET_SDK_VERSION=22
ANDROID_BUILD_TOOLS_VERSION=22.0.1
ANDROID_BUILD_SDK_VERSION=22
Run Code Online (Sandbox Code Playgroud)
https://github.com/mcxiaoke/android-volley/blob/master/gradle.properties
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
useLibrary 'org.apache.http.legacy'
...
}
Run Code Online (Sandbox Code Playgroud)
Apache HTTP客户端删除此预览删除对Apache HTTP客户端的支持.如果您的应用使用此客户端并定位到Android 2.3(API级别9)或更高版本,请改用HttpURLConnection类.此API更高效,因为它通过透明压缩和响应缓存减少了网络使用,并最大限度地降低了功耗.要继续使用Apache HTTP API,必须首先在build.gradle文件中声明以下编译时依赖项:
android {
useLibrary 'org.apache.http.legacy'
}
Run Code Online (Sandbox Code Playgroud)
Android正在从OpenSSL转向BoringSSL库.如果您在应用程序中使用Android NDK,请不要链接不属于NDK API的加密库,例如libcrypto.so和libssl.so.这些库不是公共API,可能会在不同版本和设备之间发生更改或中断,恕不另行通知.此外,您可能会暴露自己的安全漏洞.相反,修改您的本机代码以通过JNI调用Java加密API或静态链接到您选择的加密库.
归档时间: |
|
查看次数: |
10366 次 |
最近记录: |