dokka icon indicating copy to clipboard operation
dokka copied to clipboard

Exception: lateinit property module has not been initialized

Open NohaSamir opened this issue 3 years ago • 7 comments

Describe the bug Dokka fail on android with different build types It is only successful if I run using debug build type

lateinit property module has not been initialized

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':vfg-foundation:dokkaHtml'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:207)
	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:205)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:356)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property module has not been initialized
	at org.jetbrains.kotlin.cli.jvm.compiler.CliTraceHolder.getModule(CliTrace.kt:25)
	at org.jetbrains.kotlin.cli.jvm.compiler.CliKotlinAsJavaSupport.findClassOrObjectDeclarations(CliKotlinAsJavaSupport.kt:119)
	at org.jetbrains.kotlin.asJava.finder.JavaElementFinder.findClassesAndObjects(JavaElementFinder.kt:71)
	at org.jetbrains.kotlin.asJava.finder.JavaElementFinder.findClasses(JavaElementFinder.kt:57)
	at org.jetbrains.kotlin.asJava.finder.JavaElementFinder.findClass(JavaElementFinder.kt:46)
	at com.intellij.psi.impl.JavaPsiFacadeImpl.doFindClass(JavaPsiFacadeImpl.java:96)
	at com.intellij.psi.impl.JavaPsiFacadeImpl.findClass(JavaPsiFacadeImpl.java:73)
	at com.intellij.psi.impl.PsiElementFactoryImpl.createTypeByFQClassName(PsiElementFactoryImpl.java:352)
	at com.intellij.psi.PsiType.getTypeByName(PsiType.java:161)
	at com.intellij.psi.PsiType.getJavaLangObject(PsiType.java:173)
	at com.intellij.psi.impl.PsiClassImplUtil.getSuperTypes(PsiClassImplUtil.java:841)
	at com.intellij.psi.impl.source.PsiClassImpl.getSuperTypes(PsiClassImpl.java:215)
	at org.jetbrains.dokka.base.translators.psi.DefaultPsiToDocumentableTranslator$DokkaPsiParser$parseClasslike$2.invokeSuspend(DefaultPsiToDocumentableTranslator.kt:212)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

Dokka configuration Configuration of dokka used to reproduce the bug

apply plugin: 'org.jetbrains.dokka'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version"
    }
}

dokkaHtml.configure {
    dokkaSourceSets {
        named("main") {
            noAndroidSdkLink.set(false)
            outputDirectory = file("$rootDir/docs")
        }
    }
}

Installation

  • Operating system: Windows
  • Dokka version: '1.5.30 & '1.6.0'

NohaSamir avatar Dec 19 '21 10:12 NohaSamir

Workaround solution, fixed by removing the generated android test file

/**
 * Instrumented test, which will execute on an Android device.
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getTargetContext();

        assertEquals("com.vfg.common.test", appContext.getPackageName());
    }
}

NohaSamir avatar Jan 23 '22 09:01 NohaSamir

@NohaSamir I'm getting the same exact error. Wondering if this was a generated file that you removed during the gradle build process. If you have a code snippet, that would be really helpful!

ayeung avatar Jan 27 '22 18:01 ayeung

@ayeung This file generated by default when you create a new android project from android studio. I just remove it from the project.

NohaSamir avatar Jan 27 '22 20:01 NohaSamir

Thanks for the info. I tried deleting some of the generated test files, and it doesn't seem to help in my case. This happened to me when I upgraded from Gradle 4.0.2 to Gradle 7.0.2

Does anyone else have ideas on how to fix this?

ayeung avatar Jan 27 '22 21:01 ayeung

In case anyone else is curious, I was able to get around this by changing this in my build.gradle file

    outputDirectory.set(file("$buildDir/../../../../docs/java-docs"))
    dokkaSourceSets {
        configureEach {
            includeNonPublic.set(false)
            skipDeprecated.set(false)
            reportUndocumented.set(false)
            skipEmptyPackages.set(true)
            sourceRoots.setFrom(file("$buildDir/../../../../src/android/java"))
        }
    }
}

to

dokkaJavadoc.configure {
    outputDirectory.set(file("$buildDir/../../../../docs/java-docs"))
    dokkaSourceSets {
        main {
            includeNonPublic.set(false)
            skipDeprecated.set(false)
            reportUndocumented.set(false)
            skipEmptyPackages.set(true)
            sourceRoots.setFrom(file("$buildDir/../../../../src/android/java"))
        }
    }
}

So I changed configureEach to main

ayeung avatar Jan 28 '22 00:01 ayeung

So I changed configureEach to main

Similar fix for us, using gradle.kts, replace configureEach with named("main")

yunikkk avatar Feb 24 '22 14:02 yunikkk

I'm getting this issue, dokka 1.7.10 kotlin 1.7.10 gradle 7.5

I'm not configuring dokka, just using the defaults out-of-the box.

dhakehurst avatar Aug 08 '22 14:08 dhakehurst

@ayeung @yunikkk @NohaSamir @ayeung Can you provide your minimal project to reproduce it?

vmishenev avatar Nov 09 '22 13:11 vmishenev