问题标签 [android-apache-legacy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - build.gradle中useLibrary和compile files('')的原理有什么区别?
在 Android 6.0 版本之后,对Apache HTTP 客户端的支持被移除。如果我们的应用正在使用此客户端并针对Android 2.3(API 级别 9)或更高版本,HttpURLConnection
则建议使用 class。据说这个 API 更高效,因为它通过透明压缩和响应缓存减少了网络使用,并最大限度地降低了功耗。如果我们想继续使用Apache HTTP API,首先必须在我们的build.gradl
e 文件中声明如下编译时依赖:
遗留 jar 在Android SDK中,其路径为sdk/platforms/android-23/optional/
. 所以,它几乎是独立的。同时,这个 apache legacy jar 被放入optional/
Android SDK 中,那是optional/
什么?这意味着什么?
我们也知道,我们可以将这个 jar 放入libs
,然后在我们的build.gradle
文件中声明它,如下所示:
当我测试时,这两种方法都按预期工作。
但为什么?
useLibrary
in和compile files('')
in和有什么不一样build.gradle
?只是因为遗留的 jar 文件在 android SDK 中,所以我可以声明useLibrary
使用build.gradle
它?我可以以这种方式使用其他罐子吗?
有人可以提供一些关于这个的想法吗?
java - Proguard 和 apache 遗留
我正在使用Android API 23
,org.apache.http.legacy
所以我可以使用Volley
. 除了我使用proguard
. 我收到此错误:
错误:任务“:app:packageDevRelease”执行失败。无法计算 ...app/build/intermediates/classes-proguard/dev/release/classes.jar 的哈希
我的毕业文件:
编辑:
将此行添加到本文proguard
中提到的内容:
我得到了同样的错误,但现在有一些友好的输出:
BaseClient.java 的 lint 分析期间意外失败(这是 lint 或其依赖的库之一中的错误)TypeSystem.getUnannotatedType(TypeSystem.java:180)->TypeSystem.getParameterizedType(TypeSystem.java:238)->TypeSystem .getParameterizedType(TypeSystem.java:261)->LookupEnvironment.createParameterizedType(LookupEnvironment.java:949) :app:validateExternalOverrideSigning :app:packageDevRelease FAILED
我的 BaseClient.java 有一些这样的方法:
和
ETC...
我怎样才能使这项工作?
谢谢。
编辑 2:
用户ajcpsoares -ignorewarnings
解决方案有效。我将从 ProGuard 故障排除文档中保留此链接。此外,由于我认为这是一种解决方法而不是解决方案,因此我将在此处留下 Android 开源项目 - 问题跟踪器链接。
android - 错误:(12, 23) java: 包 org.apache.http 不存在
我的 android 项目不包含要放置的 build.gradleuseLibrary 'org.apache.http.legacy'
android - 如何解决已经存在的程序类型:org.apache.http.auth.AuthSchemeProvider?
我在我的应用程序中使用了以下 gradle 文件。它适用于 api 级别 23,但是当我从 23 更新到 26 时,我遇到了这个问题。请帮我解决这个问题。
// 顶层构建文件
我的应用程序gradle文件在下面。此应用程序 gradle 与 compile 和 target sdk 一起工作正常为 23。
android - java.lang.ClassNotFoundException:找不到类“android.support.v4.app.CoreComponentFactory”
它是一个发布版 apk,并不总是用于大肆宣传。
当我使用 firebase 在 Android P 中启动应用程序时发生。
第一次安装应用程序的时候率很高。
这是日志:
java - 从 Apache Http 客户端旧版迁移到 OkHttp
我正在将一些代码从 Apache HTTP 客户端迁移到 OkHttp,因为 Apache 客户端在 API 23 中已被弃用,现在在 API 29 中完全被淘汰。一般来说,我没有太多问题,但有一条线我找不到等价的:
我已经调试了这一行,它生成了一个类似于这个的字符串:
授权:基本 RU5YRU5EUkEASDASDQWEQFASkLTk2ZjgtOTASDQWEkMWNkYTA1
在文档中阅读它,我可以看到该authenticate
方法:
为给定的凭据集生成授权字符串
并且UsernamePasswordCredentials
基本上从我的用户和密码创建了该凭据,但我在 OkHttp 中找不到等效项,有人遇到过这个问题吗?
我设法在 OkHttp docs中找到了一个类an Authenticator
,但我不确定它是否是我要找的。