본문 바로가기
TrobleShooting

java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x3d2fd4f0) cannot access class cohttp://m.sun.tools.javac.code.Symbol$TypeSymbol (in module jdk.compiler) because module jdk.compiler does not ..

by 6cess 2024. 2. 8.

오류 발생 상황

java version을 수정하는 과정에서 flutter build apk 실행 시 발생한 에러

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':flutter_plugin_android_lifecycle:compileReleaseJavaWithJavac'.
> java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x3d2fd4f0) cannot access class cohttp://m.sun.tools.javac.code.Symbol$TypeSymbol (in module jdk.compiler) because module jdk.compiler does not export cohttp://m.sun.tools.javac.code to unnamed module @0x3d2fd4f0

해결책 1 : 호환되는 java version을 확실하게 찾아 변경

대부분 해결 사례를 보면 적당한 version으로 다운그레이드하면서 해결되었다는 사례가 많았다.

해결책 2 : gradle.properties 파일 수정

/android/gradle.properties 파일 안에 내용 수정

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

org.gradle.jvmargs=-Xmx1536M --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
android.useAndroidX=true
android.enableJetifier=true

으로 수정