SDK 빌드 에러 잡기

양규빈·2024년 3월 18일

디버깅

목록 보기
6/6

에러발생

또다시 빌드와 관련된 에러가 발생했습니다.
일전에는 Gradle과 관련된 에러였다면, 이번에는 SDK와 관련된 에러였습니다.

현재, 배틀레드 프로젝트는 유니티의 디폴트 SDK가 아닌, 안드로이드 스튜디오에서 관리하는 SDK를 사용하고 있었습니다.

기존에는 에러가 발생하지 않다가, SDK에 문제가 발생했다는 것은. 아마도 SDK가 업데이트 되면서 변화가 발생한 것이라 추측할 수 있었습니다.

과정1


CommandInvokationFailure: Failed to update Android SDK package list.
G:\AndroidStudio_SDK\cmdline-tools\latest\bin\sdkmanager.bat --list

stderr[
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:359)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:635)
]
stdout[

]

먼저, 최초 SDK가 컴파일되는 과정에서, NDK로 넘어가지도 못하고 곧장 팅기는 에러가 발생했습니다.
당시 콘솔창에서 나타낸 문제는 위와 같았습니다.

코드를 해석하자면, 문제점은 다음과 같았습니다.

안드로이드 SDK를 관리하는 도구가 올바른 Java 버전으로 컴파일되지 않았기 때문에 발생. 현재 실행 중인 Java 버전은 지원되지 않는 클래스 파일 버전(61.0)으로 컴파일된 클래스를 이해하지 못하기 때문.

즉 JDK가 프로젝트를 해석하는 과정에서, 양측의 버전이 호환되지 못해서 발생한 문제였습니다.
그렇기에 SDK Command-line Tool을 변경해 보았습니다.

최상단에 체크되어 있던 SDK 명령어 도구를 Remove하고, 이전 단계의 버전으로 재설치했습니다.

이 결과, SDK가 올바르게 프로젝트를 빌드하고 컴파일하는 데 성공할 수 있었습니다.

다만, 또 다른 문제가 발생했습니다.
이전과 마찬가지로 Gradle 단계에서 문제가 발생한 것입니다.

과정2

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':launcher:compileReleaseJavaWithJavac'.
> Installed Build Tools revision 33.0.3 is corrupted. Remove and install again using the SDK Manager.

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

* Get more help at https://help.gradle.org

BUILD FAILED in 8s

UnityEngine.GUIUtility:ProcessEvent (int,intptr)

유니티 콘솔 창의 에러 메시지에 따르면 SDK Tool의 33.0.3 버전에 문제가 발생했음을 확인할 수 있었습니다.

저는 곧장 안드로이드 스튜디오의 SDK Manager에서 33.0.3 버전의 SDK 빌드 툴을 제거하고 최선 버전의 툴을 재설치하여 문제 해결을 시도해 보았습니다.

해결

이러한 결과 더이상 문제가 발생하지 않고,
안드로이드 빌드가 완료됨을 확인할 수 있었습니다.

profile
훌륭한 개발자를 꿈꾸는 중입니다

0개의 댓글