@JvmDefault не найден sourceCompatibility/targetCompatibility, назначенное переменной проекта

Я хочу предоставить реализацию по умолчанию для метода в моем интерфейсе Kotlin:

interface INavItem : Comparable<INavItem> {

    val order: Int

    @JvmDefault
    override fun compareTo(other: INavItem): Int = order.compareTo(other.order)
}

но @JvmDefault выделено с ошибкой:

"@JvmDefault" поддерживается только с версии 1.8 JVM. Перекомпилируйте с '-jvm-target 1.8


Параметр JVM target 1.8 присутствует в файле сборки корневого проекта:

project.ext {
    javaVersion = JavaVersion.VERSION_1_8
    // other properties
}

и я использую его внутри файла сборки модуля:

android {

    compileOptions {
        sourceCompatibility rootProject.ext.javaVersion
        targetCompatibility rootProject.ext.javaVersion
    }
    // ...
}

Примечание. Функции Java 8 (лямбды и т. Д.) Доступны в исходных кодах Java.


Есть ли способ назначить source/targetCompatibility переменными, видимыми для котлинского линта?

0 ответов

Другие вопросы по тегам