Предупреждение: файлы JAR Kotlin для запуска в пути к классам должны иметь одну и ту же версию

Я получаю следующее предупреждение, но я не уверен, где находится v1.0.6.

Возможно ли, что эта ошибка возникает из библиотеки Kotlin, так или иначе, включая старую версию Kotlin?

Любые идеи о том, как исправить это или, по крайней мере, как я могу следовать предложению сделать kotlin-reflect явным (1.1)?

введите описание изображения здесь

Ответ 1

Кажется, что ваш проект настроен таким образом, что вы зависите от kotlin-stdlib 1.1 и kotlin-reflect 1.0. Наиболее вероятным случаем является то, что у вас уже есть явная зависимость от kotlin-stdlib 1.1, но не имеет зависимости от kotlin-reflect, а какая-то другая библиотека (на которую вы зависите) зависит от kotlin-reflect 1.0.

Если это действительно так, решение должно обеспечить явную зависимость от kotlin-reflect 1.1.

В Maven добавьте это в pom.xml:

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

В Gradle добавьте это к build.gradle:

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

См. информацию об этом и связанных с ней предупреждениях в официальных документах.

Ответ 2

Я исправил предупреждение, переписав версию kotlin, используемую в моем приложении

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

например, kotlin_version = 1.3.0

Ответ 3

Я столкнулся с той же проблемой, но это было из-за неправильной инъекции Кинжала

Ответ 4

это происходит, когда вы используете кинжал в проекте kotlin (android) и у вас есть версия kotlin 1.7, т.е.

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

все, что вам нужно сделать, это добавить приведенную ниже зависимость к уровню подготовки вашего приложения

  implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.50"