与HttpClient和SDK v23的兼容性

时间:2016-04-20 22:56:38

标签: java android apache android-studio sdk

首先,我为我糟糕的英语道歉。我的问题是我无法协调在不同版本的Android上运行的两个代码,因为它们是:

    import org.apache.http.client.HttpClient; (This work with 22)
    import com.github.paolorotolo.appintro.AppIntro;(This work with 23)

如果我将项目设置为版本22,它仅适用于HTTPClient,但更改为23无法识别它,但它适用于AppIntro。 附件“build.gradle”和每种情况下的错误输出。我必须与两者合作,因为它们非常适合我的项目,具有讽刺意义

    apply plugin: 'com.android.application'

    android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "com.example.victo.cqbo_definitive"
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.github.paolorotolo:appintro:3.4.0'
}


Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(24) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.
Error:Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\victo\AppData\Local\Android\sdk\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1

非常感谢您提前,我希望能帮助我解决问题c

1 个答案:

答案 0 :(得分:0)

从Android L开始,Google不再维护Apache HTTP库了。他们专注于URLConnection Java API。

幸运的是,通过将useLibrary 'org.apache.http.legacy'放在gradle脚本上,始终可以在API23 +上使用Apache HTTP库:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    useLibrary 'org.apache.http.legacy'
    ...
}

Android 6.0 Changes - Apache HTTP Client Removal