问题标签 [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.
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
它?我可以以这种方式使用其他罐子吗?
有人可以提供一些关于这个的想法吗?
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\optional
到libs
目录,并将其添加到依赖项中
虽然,我真的不喜欢这个解决方案,但它也不起作用,Gradle 仍然失败......
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 中的指示吗?