【问题标题】:OAuth in Android applicationAndroid 应用程序中的 OAuth
【发布时间】:2015-11-08 05:35:56
【问题描述】:

我需要在我的 Android 应用程序中使用 OAuth 协议。我决定使用android-oauth-client。在我的build.gradle 文件中,我有:

dependencies {        
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile 'com.wu-man:android-oauth-client:0.0.3'    
}

使用 gradle 文件同步项目工作正常,但是当我尝试构建我的应用程序时,出现了问题:

错误:任务 ':app:dexDebug' 执行失败。 com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'' 完成非零退出值 2

我发现我应该尝试在build.gradledefaultConfig 部分添加multiDexEnabled true。第一个问题解决了,还有一个问题:

错误:任务 ':app:packageAllDebugClassesForMultiDex' 执行失败。 java.util.zip.ZipException:重复条目:android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl.class

我不知道如何修复它以及如何构建我的项目。你能帮我吗?提前致谢。

【问题讨论】:

    标签: android oauth gradle android-multidex


    【解决方案1】:

    support-v4 传递依赖被添加了两次。您可以使用依赖项任务或依赖项洞察报告来验证它:

    MacBook-Pro:demo alex$ ./gradlew app:dependencies --configuration compile
    

    或:

    MacBook-Pro:demo alex$ ./gradlew app:dependencyInsight --configuration compile --dependency support-v4
    

    demo 是项目的根目录。编译配置的输出将是:

    compile - Classpath for compiling the main sources.
    +--- com.android.support:appcompat-v7:21.0.0
    |    \--- com.android.support:support-v4:21.0.0
    |         \--- com.android.support:support-annotations:21.0.0
    \--- com.wu-man:android-oauth-client:0.0.3
         +--- com.google.oauth-client:google-oauth-client-java6:1.15.0-rc
         |    \--- com.google.oauth-client:google-oauth-client:1.15.0-rc
         |         +--- com.google.http-client:google-http-client:1.15.0-rc
         |         |    \--- com.google.code.findbugs:jsr305:1.3.9
         |         \--- com.google.code.findbugs:jsr305:1.3.9
         +--- com.google.http-client:google-http-client-jackson:1.15.0-rc
         |    +--- com.google.http-client:google-http-client:1.15.0-rc (*)
         |    \--- org.codehaus.jackson:jackson-core-asl:1.9.11
         +--- com.google.android:support-v4:r7
         \--- com.google.api-client:google-api-client-android:1.15.0-rc
              +--- com.google.api-client:google-api-client:1.15.0-rc
              |    \--- com.google.oauth-client:google-oauth-client:1.15.0-rc (*)
              \--- com.google.http-client:google-http-client-android:1.15.0-rc
                   \--- com.google.http-client:google-http-client:1.15.0-rc (*)
    

    依赖洞察报告的输出将是:

    :app:dependencyInsight
    com.android.support:support-v4:21.0.0
    \--- com.android.support:appcompat-v7:21.0.0
         \--- compile
    
    com.google.android:support-v4:r7
    \--- com.wu-man:android-oauth-client:0.0.3
         \--- compile
    


    请注意,appcompat-v7android-oauth-client 都依赖于 support-v4。排除 android-oauth-client 的依赖即可轻松解决:

    dependencies {
        compile 'com.android.support:appcompat-v7:21.0.0'
        compile ('com.wu-man:android-oauth-client:0.0.3') {
            exclude group: 'com.google.android', module: 'support-v4'
        }
    }
    

    【讨论】:

    • 这是一个很好的答案,来自我遇到的确切问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2015-02-21
    • 2015-02-15
    • 2016-12-24
    相关资源
    最近更新 更多