android - 无法确定任务 ':app:dokka' 的依赖关系

标签 android kotlin android-gradle-plugin kotlin-multiplatform kotlin-dokka

我正在尝试在我的 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"
    }
}

应用构建.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)

最佳答案

问题在于它是一个多平台项目。在应用级 gradle 文件中,我还应用了 org.jetbrains.kotlin.multiplatform 插件。如 dokka github release page 中所述:

实验性 Kotlin 多平台支持计划于 0.9.19 推出

看起来除了等待 dokka 的下一个版本之外没有其他解决方案。

编辑: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"]
    }
}

关于android - 无法确定任务 ':app:dokka' 的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56460245/

相关文章:

java - 没有任何泛型的 kotlin 错误的可空性推断

android - Gradle 的目的是什么?

android-studio - 无法使用 Gradle 插件 0.14.0 和 Android Studio 0.9.0 获取只写属性 'runProguard' 的值

android - 如何在 Android 主屏幕小部件中显示加载进度对话框纺车

android - 无需在 Android 中执行 webView.goBack() 即可获取最后加载的 webview url

java - 如何在不使用外部主机的情况下以编程方式查找设备的外部 IP 地址?

android - Crashlytics - 不同的 gradle 风格的不同包名称

iphone - 如果您为移动设备开发了应用程序,您选择了哪条路线?

spring - Kotlin : Optional Dependency Injection Using Spring

dagger2 和 kotlin 的 Android 单元测试问题