在Android Studio 裡查看 Library Dependency

在開發時常常會遇到要 release 的時候build不起來,有一種情況是在各個 library 裡引用了同一個類別,但是他們各相依的版本又不一樣,例如有的使用Google Play Service 8.2版,有的使用Google Play Service 9.0版,因此會產生衝突。

在這時候找出兇手就很重要了,但是在錯誤訊息中很難知道到底是哪些 Library 使用了這些重複的模組,這裡提供一個快速的方法:

在 Terminal 中輸入 ./gradlew app:dependencies

如下圖

在這裡可以看到mopub sdk 引了 com.google.android.exoplayer r1.5.6,com.android.support 23.1.1。另外 Android Studio 還可以用搜尋視窗搜尋關鍵字


找出兇手後有兩種解法:

  1. 在gradle dependency 裡 exclude module
androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.0') {
exclude module: 'support-annotations'
}

2. 強制整個專案都用某一個版本

configurations.all {
resolutionStrategy {
force 'com.android.support:support-annotations:23.1.1'
}
}
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.