No se puede get dokka para generar documentos de kotlin en el proyecto gradle / android

Estoy siguiendo la sección del complemento de Gradle en https://github.com/Kotlin/dokka .

También probé el ejemplo de dokka-gradle-example en https://github.com/JetBrains/kotlin-examples/tree/master/gradle/dokka-gradle-example .

Las versiones que estoy usando son:

android: '23.1.1' dokka: '0.9.6' gradle-android-plugin: '1.5.0' kotlin: '1.0.0-rc-1036' 

pero también probé con las versiones de Dokka desde 0.9 hasta 0.9.7.

Las partes relevantes de la salida son:

 ... :app:dokka FAILED :app:dokka (Thread[Daemon worker Thread 9,5,main]) completed. Took 0.766 secs. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:dokka'. > com.intellij.mock.MockComponentManager.getPicoContainer()Lorg/picocontainer/MutablePicoContainer; * Try: Run with --debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:dokka'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:305) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:68) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:62) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:55) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:47) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:35) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:70) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39) at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:46) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246) at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) Caused by: java.lang.NoSuchMethodError: com.intellij.mock.MockComponentManager.getPicoContainer()Lorg/picocontainer/MutablePicoContainer; at org.jetbrains.dokka.AnalysisEnvironment.createCoreEnvironment(AnalysisEnvironment.kt:78) at org.jetbrains.dokka.Utilities.DokkaModule.configure(DokkaModule.kt:50) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) at com.google.inject.spi.Elements.getElements(Elements.java:110) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) at com.google.inject.Guice.createInjector(Guice.java:96) at com.google.inject.Guice.createInjector(Guice.java:73) at com.google.inject.Guice.createInjector(Guice.java:62) at org.jetbrains.dokka.DokkaGenerator.generate(main.kt:160) at org.jetbrains.dokka.gradle.DokkaTask.generate(main.kt:63) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:218) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:211) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:200) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:579) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:562) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) ... 54 more BUILD FAILED 

ACTUALIZAR

Estoy incluyendo los files de compilation:

main build.gradle :

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } ext.versions = [ android: '23.1.1', anko: '0.8.2', dokka: '0.9.6', gradleAndroid: '1.5.0', kotlin: '1.0.0', spek: '0.1.194' ] dependencies { classpath "com.android.tools.build:gradle:$versions.gradleAndroid" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } 

Módulo app/build.gradle :

 buildscript { repositories { mavenLocal() mavenCentral() jcenter() } dependencies { classpath "com.android.tools.build:gradle:$versions.gradleAndroid" classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}" } } apply plugin: 'org.jetbrains.dokka' apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' repositories { jcenter() maven { url "http://repository.jetbrains.com/all" } } android { sourceCompatibility = 1.5 compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.example" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } buildTypes { debug { testCoverageEnabled true } } } sourceSets { main.java.srcDirs += 'src/main/kotlin' test.java.srcDirs += 'src/test/kotlin' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile "com.android.support:appcompat-v7:$versions.android" compile "com.android.support:design:$versions.android" compile "com.android.support:cardview-v7:$versions.android" compile "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin" compile "org.jetbrains.anko:anko-common:$versions.anko" compile "org.jetbrains.anko:anko-sdk15:$versions.anko" compile "org.jetbrains.anko:anko-support-v4:$versions.anko" compile "org.jetbrains.anko:anko-design:$versions.anko" compile "org.jetbrains.anko:anko-appcompat-v7:$versions.anko" compile "org.jetbrains.anko:anko-cardview-v7:$versions.anko" compile "org.jetbrains.anko:anko-recyclerview-v7:$versions.anko" compile "org.jetbrains.anko:anko-gridlayout-v7:$versions.anko" testCompile "org.jetbrains.spek:spek:$versions.spek" testCompile "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin" } dokka { } 

El problema es que la versión actual de dokka no puede recoger los sets de origen definidos en el bloque de Android del file build.gradle.

Para evitar esto hasta que se solucione (crearé un problema en el repository de dokka Github), puedes duplicar los sets de origen fuera del bloque de Android para que dokka pueda resolverlo.

 android { ... sourceSets { main.java.srcDirs += 'src/main/kotlin' test.java.srcDirs += 'src/test/kotlin' } } sourceSets { main.java.srcDirs += 'src/main/kotlin' test.java.srcDirs += 'src/test/kotlin } 

Tuve el mismo problema y esto lo solucionó.

La documentation dokka trata con Android por separado:

Si usas Android, hay un complemento de gradle diferente. Solo asegúrate de aplicar el complemento después de com.android.library y kotlin-android.

Intenta usar classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:${versions.dokka}" como una dependencia y agrega el apply plugin: 'org.jetbrains.dokka-android' al final de tu list de complementos, eliminar el apply plugin: 'org.jetbrains.dokka' desde el principio.

Pruebe la versión 1.0.0 Kotlin, con la última 0.9.7 Dokka 0.9.7 . Usted tiene un desajuste allí. El complemento de Kotlin para las versiones de Gradle y Dokka debe ser compatible. Si continúa teniendo un conflicto, es posible que tenga otro complemento que esté en conflicto con esos.

Dokka 0.9.8 o posterior ya no entrará en conflicto con la versión del comstackdor de Kotlin si es diferente. Ahora contiene lo que necesita embedded como dependencies sombreadas para evitar conflictos.

  • Dokka javadoc jar no funciona con Intellij IDE
  • Dokka usa nombres de class completamente calificados