HOME > android > tips

안드로이드 빌드 에러 - Calls to Java default methods are prohibited in JVM target 1.6

By JS | 06 Oct 2019

안드로이드 스튜디오를 코틀린 코드를 빌드하면서 아래와 같은 에러를 만났습니다. jvm을 1.8로 변경해준 것 같은데 그래도 에러가 발생하네요.

calls to Java default methods are prohibited in JVM target 1.6. Recompile with '-jvm-target 1.8'

Java default methods are prohibited in JVM target 1.6

구글링해서 해결방법을 찾았습니다.

해결 방법 1

App의 build.gradle에서 android 안에 다음 코드를 추가합니다.

android {
  ...
  compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_8
      targetCompatibility JavaVersion.VERSION_1_8
  }
  kotlinOptions {
      jvmTarget = '1.8'
      apiVersion = '1.1'
      languageVersion = '1.1'
  }
  ...
}

위의 코드는 compile option과 kotlin option에서 target을 1.8로 변경해주는 내용입니다. 위 코드를 추가하고 다시 빌드를 해보면 빌드가 성공합니다.

해결 방법 2

위와 다른 방법으로, android tag 밖에 tasks에 설정하는 방법도 있습니다.

android {
  ...
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8

    kotlinOptions {
        jvmTarget = '1.8'
        apiVersion = '1.1'
        languageVersion = '1.1'
    }
}

참고

다음 사이트들을 참고했습니다.