2016-08-18 76 views
0

我正在導入與另一個庫(有兩個相同的類)衝突的庫。如何從Gradle中的.jar類中排除該包?不包括庫中的包.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所做的就是將Jars移交給Java(c),僅此而已。 –

+0

@OliverCharlesworth真遺憾。如果有兩個庫具有完全相同的類,該怎麼辦? Firebase和Google play服務就是一個很好的例子。 – slanecek

+0

這是一個難題。但是排除個別類別(即使可能)也不能解決問題 - 如果該類別反過來依賴於該庫中的另一個類,該怎麼辦? –

回答

0

我關閉這個問題,因爲它沒有更多的相關性。

正如Oliver Charlesworth所評論的那樣,這很難解決。

在我的情況下,FirebaseException類有一個問題,它翻了一倍 - 一次在Google Play Services庫中,一次在Firebase庫中。這是我的錯,我忘了增加Firebase庫版本號(它是9.0.0),以至於它與GPS 9.4.0不匹配。就這樣。