- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/DEPENDENCIES'
}
defaultConfig {
applicationId "com.guesstheurf.guesstheurf"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile (
[group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.5.0'],
[group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.5.0'],
[group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.5.0']
)
compile ('org.apache.httpcomponents:fluent-hc:4.4.1')
}
当我构建它时,我收到警告
Dependency
org.apache.httpcomponents:httpclient:4.4.1
is ignored for release as it may be conflicting with the internal version provided by Android.
这是httpcomponents:fluent-hc
依赖的依赖。
我在依赖管理上找到了这个来源(chapter 51.4.7: Excluding transitive dependencies),这表明我可以排除导致冲突的传递依赖。
但是当我把它改成
compile ('org.apache.httpcomponents:fluent-hc:4.4.1') { exclude module: 'httpclient' }
Gradle警告确实没有了,但是问题依旧:
Caused by: java.lang.NoClassDefFoundError: org.apache.http.client.fluent.InternalEntityEnclosingHttpRequest at org.apache.http.client.fluent.Request.Post(Request.java:95)
使用时问题依旧
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
如 this answer 所示.
当我使用
configurations {
all*.exclude module: 'httpclient'
}
虽然运行时错误仍然存在,但警告也消失了。
This source这建议使用 force = true
强制我自己的版本也不能解决问题。
显式添加httpclient相关依赖as suggested here也不起作用(并且不删除警告):
compile 'org.apache.httpcomponents:httpclient:4.4.1'
compile 'org.apache.httpcomponents:fluent-hc:4.4.1'
compile "org.apache.httpcomponents:httpmime:4.4.1"
compile 'org.apache.httpcomponents:httpcore:4.4.1'
我怎样才能让 fluent-hc 工作?为什么它不简单地选择最新版本的 httpclient 包,因为这是根据 51.2.3 Resolve version conflicts 的默认解析策略。 ?
最佳答案
And why doesn't it simply select the newest version of the httpclient package since that is the default resolution strategy according
因为 Android 附带了一个极其过时(BETA1 之前)的 HttpClient 4.0 版本,这使得无法使用任何版本的普通 HttpClient。 Gradle 插件显然足够聪明,可以警告您不兼容和可能的冲突。
这里有两个选择:
使用官方Android port of HttpClient ,默认情况下与 Android 附带的版本兼容 API
dependencies {
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
compile group: 'org.apache.httpcomponents' , name: 'fluent-hc' , version: '4.3.5'
}
使用 scripts 将 HttpClient 重新打包到不同的 namespace 中由德克博伊开发。您使用最新版本的 HttpClient 的情况可能会有所不同。
org.apache.http -> thank.you.google.org.apache.http
关于java - Apache Fluent Client 对 HttpClient 的传递依赖导致 NoClassDefFoundExceptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688564/
我正在将我的 Web 应用程序部署到本地主机上的 Weblogic 10.3.6,一切正常。但是当我将它部署到在远程服务器上运行的同一版本的 weblogic 时,它会抛出以下错误: JDOMExce
我通过获取基类的字节并通过自定义类适配器接受它们来生成一个类。当我对作为基类的产品生成的字节调用定义类时,我收到此错误: Caused by: java.lang.NoClassDefFoundErr
我有一个特定的过滤问题(此处描述:Pig - How to manipulate and compare dates?),所以正如我们告诉我的那样,我决定编写自己的过滤 UDF。这是代码: impor
我正在开发一个 android 应用程序,并且需要将文本(从 listView 项目)复制到剪贴板以便将其粘贴到 editText 中。 所以复制函数看起来像: ClipboardManager c
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我是 raspberry api 的新手,我使用 netbeans 7.3.1、jdk 1.7 从 Windows 7 创建了一个 javaFX 应用程序 .. 使用的数据库是 firebird ..
我正在尝试使用 Android 开发一个简单的 map 应用程序,但遇到了 NoClassDefFoundException。我尝试了不同的方法: 首先 - 我使用 Import existing c
我尝试从我的 Android 应用程序读取 docx 文件,但以下代码给出了 NoClassDefFoundException :org.doc4j.NameSpace try{ InputS
我有以下 gradle 文件: apply plugin: 'com.android.application' android { compileSdkVersion 21 build
我是 Spring 的新手。我正在从 javapoint 学习 spring 。从javapoint学习了一些spring的基础知识后和 spring docs ,我转向使用 spring 学习 hi
我一直在使用我找到的一个简单示例进行测试类来创建 .xlsx 文件。我没有使用 Maven 项目,因为我要实现它的项目不是 Maven 项目。 问题是,每次运行测试程序时,我都会收到一条错误消息,指出
我们有几个 .jar 文件想要部署到 8.5.3 Domino 服务器。 控制台命令“tell http osgi diag ”起作用并显示 bundle 在那里。但是,当我启动一个包含来自 jar
我是一名优秀的程序员,十分优秀!