gpt4 book ai didi

android - Gradle - 从包含的库中覆盖依赖项(排除依赖项)

转载 作者:太空狗 更新时间:2023-10-29 16:14:31 24 4
gpt4 key购买 nike

我在多个项目中使用了一些库。我在库中的代码与更多版本的库(旧的和新的)兼容。但是库中有一些更改与所有构建版本不兼容。

我有一个较旧的项目,目前我不想更新到最新的构建工具版本,因此对于这个单个项目,我想强行覆盖依赖项。

通常我会像下面这样从库中排除依赖项:

compile ("com.doomonafireball.betterpickers:library:1.6.0") {
exclude group: 'com.android.support', module: 'support-v4'
}

如何从本地库项目中排除依赖项?我试过了

compile project(':dialogs') {
exclude group: 'com.afollestad.material-dialogs'
}

但这并不能编译...

编辑

这是我的对话库:

compile('com.afollestad.material-dialogs:core:0.8.4.2@aar') {
transitive = true;
}
compile('com.afollestad.material-dialogs:commons:0.8.4.2@aar') {
transitive = true;
}

这是我尝试过的方法,但它不起作用:

 compile(project(':dialogs')) {
exclude group: 'com.afollestad.material-dialogs'
}
compile 'com.afollestad:material-dialogs:0.7.8.1'

问题:它编译并运行,但我得到 NoSuchMethod 异常。当我只是注释掉 0.8.4.2 库行并将其替换为 0.7.8.1 行(全部在我的库中)时,一切正常......

最佳答案

可能这应该有所帮助: https://discuss.gradle.org/t/excluding-transitive-dependency-does-not-work-for-project-dependency/8719

This is a syntax issue. The closure in which you are calling exclude is being interpreted as an argument to the project() method, which is incorrect. Should look like so:

compile(project(':baseproject')) {
exclude group: 'com.miglayout'
}

看到compile用大括号()包裹了project

关于android - Gradle - 从包含的库中覆盖依赖项(排除依赖项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33254085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com