簡體   English   中英

具有外部依賴項定義的Gradle DSL中的關閉錯誤

[英]Closure error in Gradle DSL with external dependencies definition

在我的gradle文件中,我已將所有依賴項定義外部buildsystem/dependencies.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文件中,我在依賴關系塊中使用以下定義:

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;
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM