【问题标题】:How to get a custom method inside a block with Kotlin Gradle DSL?如何使用 Kotlin Gradle DSL 在块内获取自定义方法?
【发布时间】:2018-12-13 20:35:03
【问题描述】:

我正在将一个应用程序从 Gradle Groovy 迁移到 Kotlin。这个应用程序使用了 Dexguard,它使用了一个名为getDefaultDexGuardFile 的方法来加载配置文件。

release {
  signingConfig signingConfigs.upload
  proguardFiles getDefaultDexGuardFile('dexguard-release-aggressive.pro')
  proguardFiles 'dexguard-rules.pro'
}

但是当迁移到 Kotlin 时,我找不到让它识别这个选项的方法:

getByName("release") {
  signingConfig = signingConfigs.getByName("upload")
  proguardFiles(
    "getDefaultDexGuardFile"("dexguard-release-aggressive.pro"), // ?
    getDefaultDexGuardFile("dexguard-release-aggressive.pro"), // ?
    "dexguard-rules.pro",
  )
}

IDE 不建议任何导入,所以我不知道如何进行。在 Dexguard 的 jar 中,我看到了这个方法的两个引用:

public class C0867Pp extends Closure implements GeneratedClosure

public class C0828PC implements GroovyObject

【问题讨论】:

    标签: gradle kotlin dexguard


    【解决方案1】:

    在玩了一下插件选项后,我找到了这个解决方案:

    getByName("release") {
      signingConfig = signingConfigs.getByName("upload")
      proguardFiles(
        extraDexguardMethods.getDefaultDexGuardFile("dexguard-release-aggressive.pro"),
        "dexguard-rules.pro",
      )
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-08
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      相关资源
      最近更新 更多