无法确定任务“:app:dokka”的依赖项。

4

我正在尝试在我的Android项目中使用dokka来生成kdoc文档。但是,在运行脚本“modules:app [dokka]”时出现以下错误:

无法确定任务“:app:dokka”的依赖项。 kotlin.KotlinNullPointerException(没有错误消息)

我在我的gradle文件中添加了以下内容:

项目build.gradle

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

应用程序构建文件

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

无法确定任务“:app:dokka”的依赖项。kotlin.KotlinNullPointerException(无错误消息)。

应用插件:'org.jetbrains.dokka-android' - Abhishek Aryan
不行。而且我已经在使用 Gradle Plugins DSL 语法:插件 { id ... } - Alan
我认为你需要明确告诉Gradle要使用哪个版本:id 'org.jetbrains.dokka-android' version '0.9.18' - user2340612
版本已经在类路径中,因此在应用插件时无需显式指定版本。 - Alan
我不知道这是否会产生影响,但它是一个多模块项目,除了 Android 应用程序外,还有一个 iOS/Android 的多平台模块。 - Alan
1个回答

1
问题在于这是一个多平台项目。在应用级别的gradle文件中,我也应用了org.jetbrains.kotlin.multiplatform插件。正如在dokka github release page中所描述的那样:实验性的Kotlin多平台支持计划在0.9.19中发布。看起来除了等待dokka的下一个版本发布之外,没有其他解决方案。 编辑:kolinlang论坛上有一个解决方法。
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"]
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接