pro*_*m85 2 android gradle android-studio
我有一些我在mutliple项目中使用的库.我在库中的代码与更多版本的库(旧版和新版)兼容.但是库中的更改与所有构建版本不兼容.
我有一个较旧的项目,我目前不想更新到最新的构建工具版本,所以对于这个单项目,我想强制覆盖依赖项.
通常我会从库中排除依赖关系,如下所示:
compile ("com.doomonafireball.betterpickers:library:1.6.0") {
exclude group: 'com.android.support', module: 'support-v4'
}
Run Code Online (Sandbox Code Playgroud)
如何从本地库项目中排除依赖项?我试过了
compile project(':dialogs') {
exclude group: 'com.afollestad.material-dialogs'
}
Run Code Online (Sandbox Code Playgroud)
但这不编译......
编辑
这是我的对话框库:
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;
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的,但它不起作用:
compile(project(':dialogs')) {
exclude group: 'com.afollestad.material-dialogs'
}
compile 'com.afollestad:material-dialogs:0.7.8.1'
Run Code Online (Sandbox Code Playgroud)
问题:它编译并运行,但我得到NoSuchMethod例外.当我只是注释掉0.8.4.2库行并将其替换为0.7.8.1行(所有在我的库中)时一切正常......
可能应该有所帮助:https: //discuss.gradle.org/t/excluding-transitive-dependency-does-not-work-for-project-dependency/8719
这是一个语法问题.您正在调用exclude的闭包被解释为project()方法的参数,这是不正确的.应该是这样的:
compile(project(':baseproject')) {
exclude group: 'com.miglayout'
}
Run Code Online (Sandbox Code Playgroud)
看看用braces()编译包装项目
| 归档时间: |
|
| 查看次数: |
3266 次 |
| 最近记录: |