1

OAuthAndroid アプリケーションでプロトコルを使用する必要があります。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

multiDexEnabled truedefaultConfigセクションに追加しようとする必要があることがわかりましたbuild.gradle。最初の問題は解決しましたが、別の問題があります。

エラー: タスク ':app:packageAllDebugClassesForMultiDex' の実行に失敗しました。java.util.zip.ZipException: エントリが重複しています: android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl.class

どうすれば修正できるのか、どうすればプロジェクトをビルドできるのかわかりません。助けてくれませんか?前もって感謝します。

4

1 に答える 1

7

support-v4の推移的な依存関係が 2 回追加されています。依存関係タスクまたは依存関係の洞察レポートのいずれかを使用して確認できます。

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'
    }
}
于 2015-08-17T11:20:37.330 に答える