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

Android Gradle-覆盖包含库中的依赖项(排除依赖项),android,android-studio,gradle,Android,Android Studio,Gradle,我有一些在多个项目中使用的库。我在库中的代码与库的更多版本(旧版本和新版本)兼容。但是,库中存在与所有构建版本不兼容的更改 我有一个较旧的项目,我目前不想更新到最新的构建工具版本,因此对于这个项目,我希望强制覆盖依赖项 通常我会从库中排除依赖项,如下所示: compile ("com.doomonafireball.betterpickers:library:1.6.0") { exclude group: 'com.android.support', module: 'support-

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

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

通常我会从库中排除依赖项,如下所示:

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行(全部在我的库中)替换它时,一切都正常…

这可能会有所帮助:

这是一个语法问题。调用exclude的闭包被解释为project()方法的参数,这是不正确的。应该是这样的:


看到compile用大括号()包装project

你说得对,我不知道本地库也可以使用这种语法。现在开始工作了,非常感谢muchI刚刚编辑了我的问题。。。我还有一个问题。这不符合预期。。。有什么进一步的想法或提示吗?你能提供日志片段吗?我不清楚你是谁,什么时候解决这个问题的?不。。。如果我这样做,它不会找到方法,所以我仍然手动注释代码。。。
compile(project(':baseproject')) {
    exclude group: 'com.miglayout'
}