CompleteKotlin: Kotlin 1.5.30 - ClassNotFoundException: org.jetbrains.kotlin.konan.target.HostManager
I noticed some strange behaviour on my local Windows 10 machine, which I don’t reproduce in Github Actions (neither ubuntu, nor windows, nor macos runners).
When I try to upgrade the Kotlin gradle plugins to 1.5.30, I get the following error on every Gradle run no matter the task executed (./gradlew clean, ./gradlew build, even gradle wrapper) - so it’s probably a configuration phase issue:
An exception occurred applying plugin request [id: 'org.jetbrains.kotlin.multiplatform']
> Failed to apply plugin 'org.jetbrains.kotlin.multiplatform'.
> org.jetbrains.kotlin.konan.target.HostManager
This is a hint at the actual stacktrace (more complete stack in the expand at the bottom):
Caused by: java.lang.ClassNotFoundException: org.jetbrains.kotlin.konan.target.HostManager
at com.louiscad.complete_kotlin.internal.HostPlatform$Companion$platformName$2.invoke(HostPlatform.kt:20)
Here is a build scan for more details: https://scans.gradle.com/s/z3ry63v3gtq4u
If I comment out the complete-kotlin plugin in settings.gradle.kts, the error is gone. This is extremely consistent behaviour, I just never managed to make Kotlin 1.5.30 and Complete Kotlin plugin work at the same time locally.
I am using:
- Gradle 7.2
- JDK 15.0.1 (Oracle Corporation 15.0.1+9-18)
- Windows 10 10.0 Amd64
- IDEA Kotlin plugin 212-1.5.30-release-409-IJ4638.7 (although it shouldn’t matter since I reproduce in command line)
- My project only uses
ios()among the native targets (but also uses JVM and JS - browser and node)
On the CI, it does seem to work fine though, which makes me think it’s either some misconfiguration on my machine, or architecture/platform specific issue that happens on Windows desktop, but not on Windows server. I could also reproduce with a basic multiplatform project generated by IDEA, to which I simply added jvm() and ios() targets, and the complete kotlin plugin.
Any idea how I could investigate this further?
Actual stacktrace (but trimmed) with `--stacktrace`
org.gradle.api.plugins.InvalidPluginException: An exception occurred applying plugin request [id: 'org.jetbrains.kotlin.multiplatform']
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.exceptionOccurred(DefaultPluginRequestApplicator.java:207)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:189)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$applyPlugins$1(DefaultPluginRequestApplicator.java:127)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:127)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:123)
at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:48)
at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:193)
at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.applyPluginsTo(Interpreter.kt:394)
at Program.execute(Unknown Source)
....(I cut a bunch of gradle internals here)
Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin 'org.jetbrains.kotlin.multiplatform'.
at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:173)
at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:137)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$applyPlugins$0(DefaultPluginRequestApplicator.java:129)
at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:185)
... 156 more (cut by IDEA)
Caused by: org.gradle.internal.operations.BuildOperationInvocationException: org.jetbrains.kotlin.konan.target.HostManager
at org.gradle.internal.operations.DefaultBuildOperationRunner.throwAsBuildOperationInvocationException(DefaultBuildOperationRunner.java:188)
at org.gradle.internal.operations.DefaultBuildOperationRunner.access$100(DefaultBuildOperationRunner.java:24)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:84)
at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
... (cut by me)
Caused by: java.lang.ClassNotFoundException: org.jetbrains.kotlin.konan.target.HostManager
at com.louiscad.complete_kotlin.internal.HostPlatform$Companion$platformName$2.invoke(HostPlatform.kt:20)
at com.louiscad.complete_kotlin.internal.HostPlatform$Companion$platformName$2.invoke(HostPlatform.kt:18)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at com.louiscad.complete_kotlin.internal.HostPlatform$Companion.getPlatformName(HostPlatform.kt)
at com.louiscad.complete_kotlin.internal.KotlinNativeCompilerInfo.<init>(KotlinNativeCompilerInfo.kt:21)
at com.louiscad.complete_kotlin.internal.KotlinNativeCompilerDirs.<init>(KotlinNativeCompilerDirs.kt:10)
at com.louiscad.complete_kotlin.internal.TargetsHandlerKt.completePlatformKlibsIfNeeded(TargetsHandler.kt:26)
at com.louiscad.complete_kotlin.CompleteKotlinPlugin$setup$1$1$1.execute(CompleteKotlinPlugin.kt:48)
at com.louiscad.complete_kotlin.CompleteKotlinPlugin$setup$1$1$1.execute(CompleteKotlinPlugin.kt:16)
at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:123)
at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:110)
... (cut by me)
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 2
- Comments: 16 (8 by maintainers)
@sigurdurrafn @johnameyer ☝️
It sill reproduces in 1.1.0 when applying the plugin from
settings.gradle.ktswithout the workaround mentioned above (adding"org.jetbrains.kotlin.jvm"plugin insettings.gradle.ktstoo withapply false) - which I guess is to be expected.It’s solved when applying version 1.1.0 in
build.gradle.kts. Thanks a lot!That’s related to #9, I need to update the plugin for newer Kotlin versions.
Here’s a quote of my answer for reference:
I made it a settings plugin because that’d bring no ambiguity as to which file to put it in, but it looks like I’ll change that.
I’ll try to spend some time on it this week and make a new release.