问题标签 [android-uselibrary]

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 投票
4 回答
6102 浏览

android - useLibrary 'org.apache.http.legacy' 不起作用

我正在使用Android 1.5(Win 8.1 x64),我将DrKLO/Telegram存储库分叉GitHub并将其克隆到我的本地计算机上。现在,每当我尝试同步 Gradle 或清理/构建项目时,Gradle 同步都会失败并显示以下消息:

警告:无法找到可选库:org.apache.http.legacy

build.gradle(项目:电报)[ DrKLO/Telegram/blob/master/build.gradle ]

build.gradle (模块: TMessagesProj) [ DrKLO/Telegram/blob/master/TMessagesProj/build.gradle ]

我知道在 StackOverflow 上有很多关于这个问题的问题。但他们都没有和我一起工作过。我什至尝试了一些替代方法,例如将org.apache.http.legacy.jar文件从目录复制%USERPROFILE%\AppData\Local\Android\sdk\platforms\android-23\optionallibs目录,并将其添加到依赖项中

虽然,我真的不喜欢这个解决方案,但它也不起作用,Gradle 仍然失败......

0 投票
2 回答
838 浏览

android - gradle Experiment 0.6.0-alpha1 中的 useLibrary 变成了什么?

我正在尝试将我的 gradle.build 移植到 gradle experimental。我已经修改了我现有的 android 配置,如下所示:

但是,在编译时,我似乎得到了错误:

错误:(148, 1) 配置根项目时出现问题。> 执行模型规则时抛出异常:model.android @ build.gradle 第 145 行,第 1 列> 找不到参数 [org.apache.http 的方法 useLibrary() .legacy] 在根项目上

可能是因为我不确定useLibrary修改了什么。如果我将其注释掉,构建会持续很长时间,直到它无法从上述库中找到它可能期望的 http 方法。有人可以提供一些关于如何将这个库包含在 gradle Experiment 中的指示吗?