-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kotlin Multiplatform builds result in "Error class: Unknown class" #50
Comments
Thanks, I've taken a look and I think that Dokkatoo that this error is just one symptom.
I'll try to refactor For now, you can try and manually construct the source sets. I've not done this before, and there's no example, so it will need some experimentation. Here's a start: dokkatoo {
dokkatooSourceSets.clear() // clear the bugged source sets generated by Dokkatoo
dokkatooSourceSets.create("common") {
displayName.set("Common")
analysisPlatform.set(KotlinPlatform.Common)
sourceRoots.from("src/commonMain/kotlin")
val dokkatooCommonClasspath by configurations.registering {
isCanBeResolved = true
isCanBeConsumed = false
extendsFrom(
configurations.getByName("commonMainImplementation"),
configurations.getByName("commonMainCompileOnly"),
configurations.getByName("commonMainRuntimeOnly"),
configurations.getByName("commonMainApi"),
)
}
classpath.from(dokkatooCommonClasspath.map { it.incoming.artifacts.artifactFiles })
}
dokkatooSourceSets.create("jvm") {
displayName.set("JVM")
analysisPlatform.set(KotlinPlatform.JVM)
sourceRoots.from("src/jvmMain/kotlin")
val dokkatooJvmClasspath by configurations.registering {
isCanBeResolved = true
isCanBeConsumed = false
extendsFrom(
configurations.getByName("jvmCompileClasspath"),
configurations.getByName("jvmRuntimeClasspath"),
)
}
classpath.from(dokkatooJvmClasspath.map { it.incoming.artifacts.artifactFiles })
}
} |
@EdricChan03 I've refactored the Kotlin Multiplatform configuration, and added some tests to verify that this problem doesn't occur in the same projects. Please could you check if 1.2.0-SNAPSHOT resolves the issue? If you could also check #51 at the same time, it would be much appreciated! |
I'm currently playing around with migrating to Dokkatoo in cashapp/redwood but we're seeing the same issue with 1.2.0. My WIP branch is here: cashapp/redwood#936 |
hi @chrisbanes, I can take a look at the branch. Can you open a new issue please? Ideally with a small reproducer. At first glance I can see that the project is using the legacy method of applying plugins, which might mean that Dokkatoo can't automatically pick up the classpath of a module (which is performed in DokkatooKotlinAdapter). You can look in the generated For a quick-fix you could try the workaround mentioned in #44 (comment) and manually add files to the classpath // build.gradle.kts
dokkatoo {
dokkatooSourceSets.configureEach {
// workaround for https://github.com/adamko-dev/dokkatoo/issues/44
classpath.from(configurations.compileClasspath.map { it.incoming.artifactView { lenient(true) }.artifacts.artifactFiles })
}
} |
Seems that Kotlin Multiplatform builds result in an issue similar to #44:
Let me know if additional information/a reproducer is required
The text was updated successfully, but these errors were encountered: