问题标签 [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.

0 投票
1 回答
2649 浏览

android - build.gradle中useLibrary和compile files('')的原理有什么区别?

在 Android 6.0 版本之后,对Apache HTTP 客户端的支持被移除。如果我们的应用正在使用此客户端并针对Android 2.3(API 级别 9)或更高版本HttpURLConnection则建议使用 class。据说这个 API 更高效,因为它通过透明压缩和响应缓存减少了网络使用,并最大限度地降低了功耗。如果我们想继续使用Apache HTTP API,首先必须在我们的build.gradle 文件中声明如下编译时依赖:

遗留 jar 在Android SDK中,其路径为sdk/platforms/android-23/optional/. 所以,它几乎是独立的。同时,这个 apache legacy jar 被放入optional/Android SDK 中,那是optional/什么?这意味着什么?

我们也知道,我们可以将这个 jar 放入libs,然后在我们的build.gradle文件中声明它,如下所示:

当我测试时,这两种方法都按预期工作。

但为什么?

useLibraryin和compile files('')in和有什么不一样build.gradle?只是因为遗留的 jar 文件在 android SDK 中,所以我可以声明useLibrary使用build.gradle它?我可以以这种方式使用其他罐子吗?

有人可以提供一些关于这个的想法吗?

0 投票
2 回答
818 浏览

java - Proguard 和 apache 遗留

我正在使用Android API 23org.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 开源项目 - 问题跟踪器链接

0 投票
1 回答
636 浏览

android - 错误:(12, 23) java: 包 org.apache.http 不存在

我的 android 项目不包含要放置的 build.gradleuseLibrary 'org.apache.http.legacy'

在此处输入图像描述

0 投票
0 回答
2951 浏览

android - 如何解决已经存在的程序类型:org.apache.http.auth.AuthSchemeProvider?

我在我的应用程序中使用了以下 gradle 文件。它适用于 api 级别 23,但是当我从 23 更新到 26 时,我遇到了这个问题。请帮我解决这个问题。

// 顶层构建文件

我的应用程序gradle文件在下面。此应用程序 gradle 与 compile 和 target sdk 一起工作正常为 23。

0 投票
1 回答
4855 浏览

android - java.lang.ClassNotFoundException:找不到类“android.support.v4.app.CoreComponentFactory”

它是一个发布版 apk,并不总是用于大肆宣传。

当我使用 firebase 在 Android P 中启动应用程序时发生。

第一次安装应用程序的时候率很高。

这是日志:

0 投票
1 回答
360 浏览

java - 从 Apache Http 客户端旧版迁移到 OkHttp

我正在将一些代码从 Apache HTTP 客户端迁移到 OkHttp,因为 Apache 客户端在 API 23 中已被弃用,现在在 API 29 中完全被淘汰。一般来说,我没有太多问题,但有一条线我找不到等价的:

我已经调试了这一行,它生成了一个类似于这个的字符串:

授权:基本 RU5YRU5EUkEASDASDQWEQFASkLTk2ZjgtOTASDQWEkMWNkYTA1

在文档中阅读它,我可以看到该authenticate方法:

为给定的凭据集生成授权字符串

并且UsernamePasswordCredentials基本上从我的用户和密码创建了该凭据,但我在 OkHttp 中找不到等效项,有人遇到过这个问题吗?

我设法在 OkHttp docs中找到了一个类an Authenticator,但我不确定它是否是我要找的。