2017-04-13 19 views
2

私は何らかの理由でプロジェクトをコンパイルするためにJava 1.7を使用していますが、プロジェクトをコンパイルするときに重複エントリエラーに直面しています。以下は、私の依存関係のツリーが複製を示すことです。Gradle dependencies exclude

+--- com.google.firebase:firebase-analytics:10.2.0 
| +--- com.google.firebase:firebase-common:10.2.0 
| | +--- com.google.android.gms:play-services-basement:10.2.0 
| | | \--- com.android.support:support-v4:24.0.0 
| | |   \--- com.android.support:support-annotations:24.0.0 
| | \--- com.google.android.gms:play-services-tasks:10.2.0 
| |   \--- com.google.android.gms:play-services-basement:10.2.0 (x) 
| +--- com.google.firebase:firebase-analytics-impl:10.2.0 
| | +--- com.google.android.gms:play-services-basement:10.2.0 (x) 
| | +--- com.google.firebase:firebase-iid:10.2.0 
| | | +--- com.google.android.gms:play-services-basement:10.2.0 (x) 
| | | \--- com.google.firebase:firebase-common:10.2.0 (x) 
| | +--- com.google.firebase:firebase-common:10.2.0 (x) 
| | \--- com.google.android.gms:play-services-tasks:10.2.0 (x) 
| \--- com.google.android.gms:play-services-basement:10.2.0 (x) 

は私がfirebase-分析LIBSをコンパイル時に除外を追加しようとしたが、それは第1層のみが除外され、すべてではないであろうように見えます。誰も助けることができますか?

compile ('com.google.firebase:firebase-analytics:10.2.0'){ 
exclude group: 'com.google.android.gms', module: 'play-services-basement:10.2.0' 
} 

依存性ブロック:

dependencies { 
    compile project(":core") 
    compile 'com.android.support:multidex:1.0.1' 
    compile 'com.google.code.gson:gson:2.7' 
    compile ('com.google.firebase:firebase-core:10.2.0'){ 
     exclude group: 'com.google.android.gms', module: 'play-services-basement' 
    } 
    compile fileTree(dir: "${rootProject.projectDir}/android-libs", include: ['*.jar']) 
    compile "org.slf4j:slf4j-android:1.7.10" 
} 
+0

あなたからの依存ブロックを投稿するアプリbuild.gradleファイル。 –

+0

現時点では、新しいバージョンが用意されています:firebase library:10.2.1 and gson:2.8.0 –

答えて

2

あなたは次のようにコンフィギュレーション全体の除外を使用しようとすることができます:

configurations.all { 
    exclude group: 'com.google.android.gms', module: 'play-services-basement' 
} 

それとものみコンパイル設定から、それをエクスクルード:

configurations { 
    compile.exclude group: 'com.google.android.gms', module: 'play-services-basement' 
} 
+1

** configuration {} **ブロックとは何ですか? ** compile {} **ブロックでこれを行うことができると思います。 –

+0

私は** compile(xxxx){} **はもっとローカルだと思います。 – CoXier