依赖org.apache.httpcomponents:httpclient:4.4.1因发布而被忽略,因为它可能与Android提供的内部版本冲突

时间:2015-06-10 12:11:03

标签: android android-studio

我在我的项目中使用httpmime和httpcore,我收到了此警告

  

警告:依赖org.apache.httpcomponents:httpclient:4.4.1是   因为调试可能与内部版本冲突而被忽略   由Android提供。

     

警告:依赖org.apache.httpcomponents:httpclient:4.4.1是   因为调试可能与内部版本冲突而被忽略   由Android提供。

我的依赖关系看起来像这样

dependencies {    
    compile files('libs/gson-2.2.2.jar')
    compile files('libs/classes.jar')
    compile files('libs/gcm.jar')
    compile files('libs/splunk-mint-4.2.jar')
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'org.apache.httpcomponents:httpcore:4.4.1'
    compile 'org.apache.httpcomponents:httpmime:4.4.1'}

正如在其他地方所建议的那样,我将其添加到我的build.gradle文件

packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'}

知道如何解决这个问题吗?

5 个答案:

答案 0 :(得分:11)

首先删除行 compile 'org.apache.httpcomponents:httpcore:4.4.1' compile 'org.apache.httpcomponents:httpmime:4.4.1'

然后在他们的位置在build.gradle中添加赋予:

compile ('org.apache.httpcomponents:httpmime:4.3'){
    exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'commons-io:commons-io:1.3.2'

如果您的compileSdkVersion为19(IN MY CASE),则可以尝试此操作。希望这能解决问题...

答案 1 :(得分:8)

使用适用于android的apache http客户端的重新打包版本

dependencies {
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}

https://hc.apache.org/httpcomponents-client-4.3.x/android-port.html

答案 2 :(得分:8)

解决方案1 ​​

我知道这已经太晚了但我在这里发帖是因为接受的答案对我不起作用

以前我用过

dependencies {
    compile 'org.apache.httpcomponents:httpclient:4.5'
    compile 'org.apache.httpcomponents:httpmime:4.3.3'
    compile 'org.apache.httpcomponents:httpcore:4.3.2'
    compile files('libs/httpclient-4.2.1.jar')
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}
然后我得到了类似问题的警告,之后我评论了一些像bellow

这样的行
dependencies {
    compile 'org.apache.httpcomponents:httpclient:4.5'
    compile 'org.apache.httpcomponents:httpmime:4.3.3'
    //compile 'org.apache.httpcomponents:httpcore:4.3.2'
    //compile files('libs/httpclient-4.2.1.jar')
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}

现在一切正常

修改

解决方案2

我得到了比以前更好的过程

在lib的文件夹中添加httpcore-4.3-beta1.jarhttpmime-4.3.jar,最后添加

你的graddle文件中的

useLibrary 'org.apache.http.legacy'(在android内部)就像吼叫一样

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    //For http
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.app.videorotation"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
        ......
}

答案 3 :(得分:0)

解决方案: 添加useLibrary'org.apache.http.legacy' 配置{     all * .exclude模块:“ httpclient” }

我认为有些人可能需要这个,

答案 4 :(得分:0)

这对我有用。

如果您保留以下一项:-,

compile 'org.apache.httpcomponents:httpcore:4.4.4'
compile group: 'org.apache.httpcomponents' , 
name: 'httpclient-android' , version: '4.3.5.1'

将其更改为此,

compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'