androidkotlinandroid-gradle-pluginkotlin-multiplatformkotlin-dokka

Could not determine the dependencies of task ':app:dokka'


I'm trying to use dokka on my android project to generate kdoc. But I have this error when I'm running the script 'modules:app [dokka]' : Could not determine the dependencies of task ':app:dokka'. kotlin.KotlinNullPointerException (no error message)

I added the following lines on my gradle files :

Project build.gradle

buildscript {
    ext {
        dokka_version = '0.9.18'
    }
    dependencies {
        classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:$dokka_version"
    }
}

app build.gradle

plugins {
    id 'org.jetbrains.dokka-android'
}
dokka {
    outputFormat = 'html'
    sourceDirs = files('src/main')
    outputDirectory = "$buildDir/javadoc"
}

Could not determine the dependencies of task ':app:dokka'. kotlin.KotlinNullPointerException (no error message)


Solution

  • The issue is that it's a multiplatform project. In the app level gradle file, I'm also applying the org.jetbrains.kotlin.multiplatform plugin. As described in the dokka github release page:

    Experimental Kotlin Multiplatform support is scheduled for 0.9.19

    Looks like there's no other solution than wait for the next release of dokka.

    Edit: There's a workaround described on the kolinlang forum

    dokka {
        impliedPlatforms = ["common"] // This will force platform tags for all non-common sources e.g. "JVM"
        kotlinTasks {
            // dokka fails to retrieve sources from MPP-tasks so they must be set empty to avoid exception
            // use sourceRoot instead (see below)
            []
        }
        sourceRoot {
            // assuming there is only a single source dir...
            path = kotlin.sourceSets.commonMain.kotlin.srcDirs[0]
            platforms = ["common"]
        }
    }