在Android中使用Google APIs依赖于Apache HTTP客户端

4

我一直在使用谷歌播放服务库,仅用于Google+登录,并且它运行良好,但现在我想将日历API包含到我的应用程序中。我正在遵循这个教程

问题是,根据教程的新指示,依赖关系会导致Gradle Build中出现警告。

Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources]
Warning:Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for debug as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
Warning:Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for release as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:preReleaseBuild UP-TO-DATE
:app:checkDebugManifest
:app:prepareComAndroidSupportMediarouterV72200Library UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72221Library UP-TO-DATE
:app:prepareComAndroidSupportMultidex100Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServices750Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42221Library UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:compileDebugAidl UP-TO-DATE
Information:2 warnings
:app:mergeDebugAndroidTestResources UP-TO-DATE
Information:See complete output in console
:app:prepareComGoogleAndroidGmsPlayServicesMaps750Library UP-TO-DATE
:app:generateDebugAndroidTestBuildConfig UP-TO-DATE
Information:BUILD SUCCESSFUL
:app:generateDebugAndroidTestSources UP-TO-DATE
:app:processDebugAndroidTestResources UP-TO-DATE
:app:compileDebugAndroidTestAidl UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesSafetynet750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesGcm750Library UP-TO-DATE
Information:0 errors
:app:prepareComGoogleAndroidGmsPlayServicesGames750Library UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesNearby750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppstate750Library UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:generateDebugAndroidTestAssets UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesDrive750Library UP-TO-DATE
Information:Total time: 10.856 secs
:app:prepareComGoogleAndroidGmsPlayServicesLocation750Library UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:mergeDebugAndroidTestAssets UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesCast750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesWallet750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesPanorama750Library UP-TO-DATE
:app:preDebugAndroidTestBuild UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesPlus750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBase750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesWearable750Library UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppinvite750Library UP-TO-DATE
:app:prepareDebugDependencies
:app:prepareComGoogleAndroidGmsPlayServicesAppindexing750Library UP-TO-DATE
:app:generateDebugAndroidTestResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:generateDebugAndroidTestResValues UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesIdentity750Library UP-TO-DATE
:app:prepareDebugAndroidTestDependencies
:app:compileDebugAndroidTestRenderscript UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesFitness750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAnalytics750Library UP-TO-DATE
:app:processDebugAndroidTestManifest UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAds750Library UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE

这是我的Gradle应用文件:

apply plugin: 'com.android.application'

android {
    signingConfigs {
        config {
            keyAlias 'androiddebugkey'
            keyPassword 'android'
            storeFile file('C:/Users/Julio/.android/debug.keystore')
            storePassword 'android'
        }
    }
    compileSdkVersion 22
    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId "com.example.julio.competicionpartido"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            signingConfig signingConfigs.config
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.google.android.gms:play-services:7.5.0'
    compile ('com.google.api-client:google-api-client:1.20.0'){
        exclude module: 'httpclient' 
        exclude group: 'org.apache.httpcomponents'
        exclude group: 'org.apache.httpcomponents', module: 'httpclient' 
    }
    compile 'com.google.api-client:google-api-client-android:1.20.0'
    compile 'com.google.api-client:google-api-client-gson:1.20.0'
    compile 'com.google.apis:google-api-services-calendar:v3-rev125-1.20.0'
}

我已经寻找很久了并且尝试了所有的方法,有人可以帮帮我吗?

(关于IT技术的翻译可能会更为具体,请提供更多上下文信息以便更好地理解。)

正如您所说,这是一个警告。它是否实际上在您的应用程序中引起了问题或错误? - Intrications
请参见 https://dev59.com/H10a5IYBdhLWcg3wVHXU。 - bartonstanley
3个回答

8
为了从所有配置中排除该类:
configurations.all() {
    exclude group: "org.apache.httpcomponents", module: "httpclient"
}

dependencies {
    ...
}

4

我可以通过从所有配置中排除httpclient模块来解决错误。将以下代码添加到您的guild.gradle文件中:

configurations {
    compile.exclude group: "org.apache.httpcomponents", module: "httpclient"
}

2
我是这样解决的...
我已经整合了Google+登录和分享到我的应用程序中。我只需要移除API客户端依赖项,并仅使用Google Play服务依赖项,这对我起作用了。 compile 'com.google.api-client:google-api-client-android:1.20.0' - 将其删除
然后只需使用compile 'com.google.android.gms:play-services:7.5.0',一切都正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接