32

I've been getting an error like this for days, but I couldn't find a solution. Can you please help me?

What could the problem be caused by?

Error :

java.lang.IllegalAccessError: class org.jetbrains.kotlin.kapt3.base.KaptContext (in unnamed module @0x6acdb135) cannot access class com.sun.tools.javac.util.Context (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.util to unnamed module @0x6acdb135
    at org.jetbrains.kotlin.kapt3.base.KaptContext.<init>(KaptContext.kt:28)
    at org.jetbrains.kotlin.kapt3.KaptContextForStubGeneration.<init>(KaptContextForStubGeneration.kt:40)
    at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.contextForStubGeneration(Kapt3Extension.kt:287)
    at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:171)
    at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:102)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$invokeExtensionsOnAnalysisComplete(TopDownAnalyzerFacadeForJVM.kt:112)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:122)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:86)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:252)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:243)
    at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:113)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:243)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:90)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:56)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:169)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:92)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:412)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:112)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:358)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally$default(IncrementalCompilerRunner.kt:300)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl$rebuild(IncrementalCompilerRunner.kt:119)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:170)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:81)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:607)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:96)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1658)
    at jdk.internal.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
    at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
    at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
    at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
    at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
    at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)


Execution failed for task ':app:kaptGenerateStubsMacellanDebugKotlin'.
> Internal compiler error. See log for more details
a_local_nobody
  • 7,947
  • 5
  • 29
  • 51
Nisa Efendioglu
  • 901
  • 3
  • 12
  • 22

7 Answers7

27

Upgrade Kotlin Gradle Plugin Version to 1.6.0+. Kapt works seamlessly with JDK 16+ when Kotlin is 1.6.0 or higher.

classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21'

Kotlin plugins for Gradle

Vishnu Satheesh
  • 541
  • 1
  • 8
  • 11
9

You can solve this by switching Java version to Java 15. Also if you are working with gradle on Intellij IDEA, change java also in File> Settings > Build, Execution, Deployment > Build Tools > Gradle.

IToncek
  • 101
  • 1
  • 1
2

I found a solution and fixed this damn problem :D

I recommend using, adding it to the root build.gradle. This will force using the given dependency in the whole project:

build.gradle (Project)

allprojects {
    configurations.all {
        resolutionStrategy {
            force 'org.xerial:sqlite-jdbc:3.34.0'
        }
    }
}
Nisa Efendioglu
  • 901
  • 3
  • 12
  • 22
2

I was able to solve this problem by adding following workaround :

org.gradle.jvmargs=-Xmx1536m --illegal-access=permit

to gradle.properties file.

NeeK
  • 662
  • 1
  • 8
  • 21
1

Add

org.gradle.jvmargs=-Dfile.encoding=UTF-8 \
                   --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
                   --add-opens jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \
                   --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \
                   --add-opens jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED  \
                   --add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED \
                   --add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \
                   --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED

to the gradle.properties file using JDK-11 in gradle-jdk.

neelkanth_vyas
  • 192
  • 1
  • 7
0

After switching JAVA_HOME to java 1.8 and restarting Android Studio, problem is solved.

Simsim
  • 121
  • 1
  • 2
0

This is work for me and pretty sure work for most of people.

Change Gradle Version to JDK17 to JDK11 or visa versa

Still Facing Problem Go for Invalid cache & Restart.

Bhavin Solanki
  • 418
  • 2
  • 10