【问题标题】:Could not determine the dependencies of task ':app:dokka'无法确定任务 ':app:dokka' 的依赖关系
【发布时间】:2019-06-05 12:11:20
【问题描述】:

我正在尝试在我的 android 项目上使用 dokka 来生成 kdoc。 但是当我运行脚本 'modules:app [dokka]' 时出现此错误: 无法确定任务 ':app:dokka' 的依赖关系。 kotlin.KotlinNullPointerException(没有错误信息)

我在我的 gradle 文件中添加了以下几行:

项目构建.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"
}

无法确定任务 ':app:dokka' 的依赖关系。 kotlin.KotlinNullPointerException(没有错误信息)

【问题讨论】:

  • apply plugin: 'org.jetbrains.dokka-android' ???
  • 不。而且我已经在使用 gradle plugins dsl 语法:plugins { id ...}
  • 我认为你需要明确告诉 Gradle 使用什么版本:`id 'org.jetbrains.dokka-android' version '0.9.18'
  • 版本已经在类路径中,所以在应用插件时不需要明确告诉版本
  • 不知道有没有影响,但它是一个多模块项目,除了android app之外还有一个多平台的ios/android模块

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


【解决方案1】:

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

Experimental Kotlin Multiplatform support is scheduled for 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"]
    }
}

【讨论】:

    猜你喜欢
    • 2020-07-11
    • 2020-09-17
    • 2020-10-04
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2022-01-17
    相关资源
    最近更新 更多