2016-08-18 5 views
0

別のライブラリと衝突するライブラリをインポートしています(同じクラスが2つあります)。 Gradleの.jarからクラスを含むパッケージを除外するにはどうしたらいいですか?ライブラリ内のパッケージの除外

dependencies { 

//final SUPPORT_LIBRARY_VERSION = '24.0.0' 

final RETROFIT_VERSION = '2.0.0' 

compile fileTree(dir: 'libs', include: ['*.jar']) 
. 
. 
. 
compile ('com.google.firebase:firebase-database:9.0.0') 

compile ("com.google.android.gms:play-services-gcm:9.4.0") { 
    exclude 'firebase' directory in here 
    } 
} 

enter image description here

+0

依存関係内の個々のものを除外することはできません。すべてのGradleはJarファイルをJava(C)に渡します。 –

+0

@OliverCharlesworthそれは残念だ。全く同じクラスを持つ2つの図書館がある場合、どうすればよいですか? FirebaseとGoogleのプレイサービスは良い例です。 – slanecek

+0

それは難しい問題です。しかし、個々のクラスを除外することは可能ですが、問題を解決することはできません。そのクラスがそのライブラリの別のクラスに依存している場合はどうなりますか? –

答えて

0

それはより適切だので、私は、この質問を閉じていません。

Oliver Charlesworthがコメントしたように、解決することは非常に困難です。

私の場合、FirebaseExceptionクラスには問題がありました。これは、Google Play Servicesのライブラリに1回、Firebaseに1回、ライブラリが2倍になりました。私の間違いでしたが、Firebaseライブラリのバージョン番号(9.0.0です)を増やすのを忘れました。そのため、GPS 9.4.0と一致しませんでした。それで全部です。

関連する問題