Multiple versions of same library

2019-03-29 10:50发布

I have project A, which used to have module A1, that used dagger v. 1.2.2. Now I'd like to add to project A, module A2, that has dependency on dagger v. 2.0. But I can't because these two dagger libs are in conflict. Can I approach somehow multiple versions of library in different android modules?

3条回答
Luminary・发光体
2楼-- · 2019-03-29 11:25

You can't have both.

You need to exclude the conflicting libraries from dependencies:

configurations {
    all*.exclude group: 'com.google.android', module: 'support-v4'
}

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
}

From: https://github.com/stephanenicolas/robospice/issues/161

OR

dependencies {
    compile("org.gradle.test.excludes:api:1.0") {
        exclude module: 'shared'
    }
}

From: https://docs.gradle.org/current/userguide/dependency_management.html #52.4.7

查看更多
狗以群分
3楼-- · 2019-03-29 11:35

Why do you wan to t keep both of them? I don't think if it is possible, you should go for one library only. And here you should use the latest one, as I think if the latest one is added the older one doesn't matter. Check out these links if they help you with dagger...

Dagger dependencies when overriding graph with mock module causes NoClassDefFoundError

How to use dagger in a android library project

Dagger dependencies when overriding graph with mock module causes NoClassDefFoundError

查看更多
神经病院院长
4楼-- · 2019-03-29 11:42

You need to exclude the dagger v. 1.2.2 library and let the dagger v. 2.0. The latter normally will be back compatible. Look at the gradle doc about how to exclude specific dependency. https://docs.gradle.org/current/userguide/dependency_management.html

查看更多
登录 后发表回答