

이는 현재 사용 중인 Java 컴파일러(
Javac)가 Java 21을 인식하지 못한다는 의미
즉, 해당 프로젝트에서 Java 21을 사용하려고 했으나, Android 빌드 시스템(Gradle)이 이를 지원하지 못하는 문제인 것이다.

해당 프로젝트에서 사용중인 capacitor 7은 기본적으로 Java 21을 필요로 함에도 불구하고 다운그레이드를 시도

해당 화면의 상단에 버전 관련 설정을 더 쉽게 변경할 수 있는 GUI 옵션이 있다는 것을 알려주었고 해당 옵션을 열어서

모든 모듈(capacitor-android, capacitor-cordova-android-plugins, capacitor-device, capawesome-team-capacitor-nfc)의 Java를 17 버전으로 변경해주었다.

해당 과정을 통해 Apk 빌드에 성공했다.
추가로 vscode에서 capacitor 관련 모듈의 Java 버전을 변경하는 방법도 있다. (이거 해결하느라 .. 🥲)

// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
capacitor 관련 모듈의 Java 버전은 해당 파일에서 변경하면 업데이트됨과 동시에 다시 이전의 설정으로 덮어씌워진다.

때문에 android/app/build.gradle 파일의 android {} 블록 밖에 해당 코드를 추가한다.
afterEvaluate {
project.tasks.withType(JavaCompile).configureEach {
it.sourceCompatibility = JavaVersion.VERSION_17
it.targetCompatibility = JavaVersion.VERSION_17
}
}
이를 추가하면 capacitor.build.gradle이 덮어씌워진 후에도 Java 17 버전을 강제로 적용할 수 있다.
Java 21 버전을 사용하려 했으나, Gradle이 이를 지원하지 못해 사용하던 Capacitor의 버전 다운 그레이드를 수행하여 문제를 해결했다.