Android Studio throws build error in Kotlin project which calls static method in java interface

后端 未结 4 2107
挽巷
挽巷 2021-02-20 11:45

I have a Kotlin project in Android Studio. I am calling a static method in Java interface from the Kotlin code. The build fails with the error,

Calls to static m         


        
相关标签:
4条回答
  • 2021-02-20 12:06

    I am able to resolve this by adding below block as my build.gradle is not in dsl. To set the target JVM version for the Kotlin compiler, use the following block:

    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
    
    0 讨论(0)
  • 2021-02-20 12:08

    Proper way to set Kotlin compile options in android gradle. Make these changes to your app level Build.gradle

    Change

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

    to

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    

    Then write this task

    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'
        }
    }
    

    just below(not necessarily)

    repositories {
        mavenCentral()
    }
    

    For details, refer here

    0 讨论(0)
  • 2021-02-20 12:14

    The compileOptions section in build.gradle affects the Java compiler, not the Kotlin compiler. To set the target JVM version for the Kotlin compiler, use the following block:

    compileKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    
    compileTestKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    

    See the documentation for more information.

    0 讨论(0)
  • 2021-02-20 12:19

    I had the same problem because I had a folder for the integration tests different than the unit test folder. So the build.gradle needs more configuration:

    compileKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    compileTestKotlin {
        kotlinOptions.jvmTarget = "1.8"
    } 
    //added this
    compileIntegrationTestKotlin {
      kotlinOptions.jvmTarget = "1.8"
    }
    
    0 讨论(0)
提交回复
热议问题