Когда я создаю свой проект Android, я получаю следующее сообщение:
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
/home/janek/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.10/4d147bf43060dc43d61b096e24da1e67dfe0c032/kotlin-stdlib-jdk7-1.3.10.jar (version 1.3)
/home/janek/.gradle/caches/transforms-1/files-1.1/kotlin-reflect-1.0.6.jar/beba9d201a205f30041b70982540014d/jetified-kotlin-reflect-1.0.6.jar (version 1.0)
/home/janek/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.11/4cbc5922a54376018307a731162ccaf3ef851a39/kotlin-stdlib-1.3.11.jar (version 1.3)
/home/janek/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.11/d8b8e746e279f1c4f5e08bc14a96b82e6bb1de02/kotlin-stdlib-common-1.3.11.jar (version 1.3)
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath
Но я понятия не имею, почему здесь присутствует jetified-kotlin-reflect, поскольку он не является зависимостью и даже не появляется в androidDependencies
.
Вы знаете, откуда она берется или как я могу решить эту ошибку?
У меня есть около 15 файлов build.gradle, вы уверены, что это поможет? Ни в одном из них нет ссылок на kotlin-reflect, а все библиотеки kotlin имеют версию 1.3.
Я предполагаю, что плагин kotlin автоматически добавит kotlin-reffection.jar, если вы используете особенности отражения, например литеральный синтаксис класса.
On the Java platform, the runtime component required for using the reflection features is distributed as a separate JAR file (kotlin-reflect.jar). This is done to reduce the required size of the runtime library for applications that do not use reflection features. If you do use reflection, please make sure that the .jar file is added to the classpath of your project.
Я исправил предупреждения, явно добавив
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
в мой build.gradle.
У меня была такая же проблема сейчас с gradle 7 и kotlin 1.5.31, тот же пакет (отражение 1.4.31) старше, чем другие, несмотря на то, что отражение не реализовано явно. С этим разобрался, но видимо ошибка в самом плагине?
Это похоже на предупреждение. Можете ли вы показать нам свои файлы
build.gradle
?