web-dev-qa-db-fra.com

avertissement: les fichiers JAR d'exécution Kotlin dans le chemin d'accès aux classes doivent avoir la même version

Je reçois l'avertissement suivant, mais je ne suis pas sûr de l'endroit où réside la version 1.0.6.

Est-il possible que cette erreur vienne d'une bibliothèque Kotlin incluant une ancienne version de Kotlin?

Des idées pour résoudre ce problème ou au moins comment puis-je suivre la suggestion visant à rendre kotlin-reflect explicit (1.1)?

enter image description here

43
ycomp

Il semble que votre projet soit configuré de telle sorte que vous dépendiez de kotlin-stdlib 1.1 et kotlin-reflect 1.0. Le cas le plus probable est que vous avez déjà une dépendance explicite sur kotlin-stdlib 1.1 mais ne dépend pas de kotlin-reflect, et une autre bibliothèque (dont vous dépendez) dépend de kotlin-reflect 1.0.

Si tel est bien le cas, la solution consiste à fournir une dépendance explicite à kotlin-reflect 1.1.

Dans Maven, ajoutez ceci à pom.xml:

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

Dans Gradle, ajoutez ceci à build.gradle:

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

Voir quelques informations à ce sujet et les avertissements associés dans la documentation officielle .

62
Alexander Udalov

J'ai corrigé l'avertissement en écrasant la version de Kotlin utilisée dans mon application

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

par exemple. kotlin_version = 1.3.0

16
Vlad