与 HttpClient 和 SDK v23 的兼容性

Compatibility with HttpClient and SDK v23

首先我为我糟糕的英语道歉。我的问题是我无法在不同版本的 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.0.1\aapt.exe'' finished with non-zero exit value 1

先谢谢你了,希望能帮我解决一下c

从 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