Настроить аргументы компилятора

Я ищу способ настроить аргументы компилятора Kotlin в файле build.gradle моего приложения Android Application.

В официальной документации Kotlin я видел, что можно настроить аргументы компилятора для каждого стиля сборки (например, debug, release).

Уровень проекта build.gradle

 buildscript { ext.kotlin_version = '1.1.51' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-rc1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 

Уровень сборки на уровне приложения

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 26 buildToolsVersion "26.0.2" defaultConfig { applicationId "com.myapp.myapplication" minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } // The interesting part : configure the compileReleaseKotlin task // to include compiler arguments when building releases compileReleaseKotlin { kotlinOptions { freeCompilerArgs = [ 'Xno-param-assertions', 'Xno-call-assertions', 'Xno-receiver-assertions' ] } } dependencies { // The usual Android dependencies, omitted for brievety } 

При создании проекта я получаю следующую ошибку:

 Could not find method compileReleaseKotlin() for arguments [build_7b4e2sfm3830f9z4br95gfme2$_run_closure2@7ed96f28] on project ':app' of type org.gradle.api.Project. 

Является compileReleaseKotlin блок compileReleaseKotlin неуместным или неверным? Android Studio предлагает мне этот метод.

После нескольких дней поиска и экспериментов я наконец нашел способ настроить компилятор на основе варианта сборки.

Вот то, что сработало для меня:

 buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // Configure Kotlin compiler optimisations for releases kotlinOptions { freeCompilerArgs = [ 'Xno-param-assertions', 'Xno-call-assertions', 'Xno-receiver-assertions' ] } } } } 

Похоже, что документация для плагина Google Gradle Kotlin compileReleaseKotlin : в то время как в нем говорится, что компилятор может быть настроен путем добавления, например, закрытия compileReleaseKotlin для релизов, для Android вы должны поместить блок kotlinOptions в release , так как показано выше.

Обратите внимание, что для обычного проекта Kotlin (без Android) блок compileKotlin описанный в документации, работает как намеренный.

Надеюсь, поможет !