Коротко — проблема не в Android Studio или в вашем коде, а в версии Kotlin Gradle plugin / API: в той версии плагина, которую вы используете, интерфейс KotlinJvmCompilerOptions не содержит свойство/метод jvmDefault (поэтому вызов getJvmDefault() не находится). Это часто происходит при копировании примера из более новой/старой документации.
Что это значит и как исправить
- Проверьте версию Kotlin Gradle Plugin, которую вы реально используете (в корневом build.gradle / settings.gradle или в plugins-блоке). Пример:
- plugins { id "org.jetbrains.kotlin.android" version "1.8.22" } или в buildscript classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.22".
- Если ваша версия плагина старая — обновите её до версии, которая поддерживает нужную вам DSL-опцию.
- Если обновлять не хочется/нельзя — задавайте опцию через freeCompilerArgs (универсальный способ), например "-Xjvm-default=all-compatibility" или "-Xjvm-default=all" (в зависимости от того, что вам нужно).
Примеры (Android / Kotlin)
Groovy (module build.gradle):
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
// если getJvmDefault() отсутствует — используем freeCompilerArgs
freeCompilerArgs += ["-Xjvm-default=all-compatibility"]
}
}
Kotlin DSL (build.gradle.kts):
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
kotlinOptions {
jvmTarget = "1.8"
freeCompilerArgs += listOf("-Xjvm-default=all-compatibility")
}
}
Универсально для подпроектов:
subprojects {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class.java).configureEach {
kotlinOptions.freeCompilerArgs += listOf("-Xjvm-default=all-compatibility")
}
}
Как выбрать режим "-Xjvm-default"
- "disable" — по умолчанию (не генерировать JVM default методы)
- "enable" — старый экспериментальный режим
- "all" — генерируются default-методы без совместимости
- "all-compatibility" — генерируются и реализация, и совместимый backport (часто безопаснее для библиотек)
Резюме
1. Проверьте версию Kotlin Gradle Plugin.
2. Либо обновите её до версии с поддержкой свойства jvmDefault, либо используйте freeCompilerArgs (наиболее надёжный подход).
3. После изменения синхронизируйте проект (Sync / Gradle sync) и пересоберите.
Если хотите, скажите:
- какая версия Kotlin в проекте (в plugins-блоке или в classpath), и
- какой build.gradle (Groovy или Kotlin DSL) вы используете — я дам точные правки под ваш проект.