warning: Kotlin runtime JAR files in the classpath

2019-02-07 23:34发布

问题:

I get the following warning, but I'm not sure where v1.0.6 resides.

Is it possible this error comes from a Kotlin library somehow including an old Kotlin version?

Any ideas how to fix it or at least how can I follow the suggestion to make kotlin-reflect explicit (1.1) ?

回答1:

It seems that your project is configured in such a way that you depend on kotlin-stdlib 1.1 and kotlin-reflect 1.0. The most likely case is that you already have an explicit dependency on kotlin-stdlib 1.1 but have no dependency on kotlin-reflect, and some other library (which you depend on) depends on kotlin-reflect 1.0.

If that indeed is the case, the solution is to provide an explicit dependency on kotlin-reflect 1.1.

In Maven, add this to pom.xml:

    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-reflect</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

In Gradle, add this to build.gradle:

dependencies {
    compile "org.jetbrains.kotlin:kotlin-reflect:1.1.0"
}

See some info about this and related warnings in the official docs.



回答2:

I fixed warning by overwriting kotlin version used in my app

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'org.jetbrains.kotlin' && requested.name == 'kotlin-reflect') {
            details.useVersion kotlin_version
        }
    }
}

e.g. kotlin_version = 1.3.0



标签: kotlin