在我的 gradle 文件中,我已将所有依赖项定义外部化到文件 buildsystem/dependencies.gradle
:
ext {
//Android
androidBuildToolsVersion = "23.0.2"
androidMinSdkVersion = 21
androidTargetSdkVersion = 23
androidCompileSdkVersion = 23
//View libraries
appcompatVersion = '23.1.1'
designVersion = '23.1.1'
//... other dependencies
//Analytics
crashlyticsAnswersVersion = '1.3.6'
crashlyticsCrashlyticsVersion = '2.5.5'
presentationDependencies = [
appcompat: "com.android.support:appcompat-v7:${appcompatVersion}",
design: "com.android.support:design:${designVersion}",
//... other
answer: "com.crashlytics.sdk.android:answers:${crashlyticsAnswersVersion}@aar",
crashlytics: "com.crashlytics.sdk.android:crashlytics:${crashlyticsCrashlyticsVersion}@aar",
]
}
然后,在我的 app/build.gradle
文件中,我在依赖 block 中使用了这个定义:
dependencies {
def presentationDependencies = rootProject.ext.presentationDependencies
def presentationTestDependencies = rootProject.ext.presentationTestDependencies
compile presentationDependencies.appcompat
compile presentationDependencies.design
compile presentationDependencies.answer {
transitive = true;
}
compile presentationDependencies.crashlytics {
transitive = true;
}
//compile('com.crashlytics.sdk.android:answers:1.3.6@aar') {
// transitive = true;
//}
//compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
// transitive = true;
//}
testCompile presentationTestDependencies.junit
}
当以常规方式(注释行)定义 Crashlytics 依赖项时 - 编译通过。 在我的配置中,出现错误:
* What went wrong:
A problem occurred evaluating project ':app'.
> No signature of method: java.util.LinkedHashMap.answer() is applicable for argument types:
(build_3csgketz6zwk5p72to2csf0e$_run_closure3$_closure8) values:
[build_3csgketz6zwk5p72to2csf0e$_run_closure3$_closure8@54bfd47]
Possible solutions: any(), inspect(), use([Ljava.lang.Object;), any(groovy.lang.Closure), any(groovy.lang.Closure)
我该如何定义它?我知道,问题在于闭包包含 transitive
字段。但我不知道什么是正确的配置方法。
最佳答案
感谢@Gabriele Mariotti。
缺少括号
compile (presentationDependencies.crashlytics) {
transitive = true;
}
关于android - 具有外部依赖项定义的 Gradle DSL 中的关闭错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35802353/