Android와 Unity 간 버전 호환성 관리

Jonghwan Choi·2023년 3월 10일
1

Unity Android App

목록 보기
2/6

안드로이드 스튜디오는 Gradle을 빌드 도구로 사용하며 Android Gradle Plugin(AGP)을 이용해서 Gradle에게 명령을 내린다. 그리고 Gradle은 안드로이드 프로젝트 빌드를 할 때 JDK를 이용한다. 때문에 Studio, Gradle, AGP, JDK는 서로 버전이 호환되어야 하며, 여기에 Kotlin으로 프로젝트를 작성했다면 Kotlin 플러그인 버전도 맞아야 한다.

단일 개발환경에서 프로젝트를 만드는 경우 이런 문제는 편집기가 알아서 조율해 주기 때문에 크게 신경 쓸 필요가 없다. 그러나 유니티 에디터로 개발한 안드로이드 앱에 안드로이드 스튜디오에서 만든 라이브러리를 붙이는 등 서로 다른 개발환경에서 만든 프로젝트를 합치는 경우 버전 호환성은 상당히 치명적으로 작용할 수 있다. 그래서 알아둘 필요가 있는 이슈다.

Android 공식 문서
Gradle 공식 문서
Unity 공식 문서

버전 확인

Android Studio 환경

  • Android Studio: 상단 메뉴 Help > About
  • JDK: 상단 메뉴 File > Settings > Build, Excution, Deployment > Build Tools > Gradle
  • Gradle: 상단 메뉴 File > Project Structure > Project
    (gradle-wrapper.properties > distributionUrl 에서도 확인 가능)
  • AGP: 상단 메뉴 File > Project Structure > Project
    (Project레벨 build.gradle > plugins > com.android.application 및 com.android.library 에서도 확인 가능)
  • Kotlin Plugin: Project레벨 build.gradle > plugins > org.jetbrains.kotlin.android

Unity Editor 환경

  • Unity 버전: Unity Hub > Installs
  • Gradle: (Windows) ${유니티 설치폴더}\Hub\Editor${유니티 버전명}\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib
  • AGP: {프로젝트 폴더}\Assets\Plugins\Android\mainTemplate.gradle 문서의 buildscript > dependencies > classpath 'com.android.tools.build:gradle:${버전명}'
    (Android SDK)
  • JDK: Preferences > External Tools > JDK

버전 호환성 관리

Android Studio ↔ AGP ↔ JDK

Android Studio 버전호환되는 Gradle Plugin 버전기본 JDK
Giraffe3.2 ~ 8.111
Flamingo3.2 ~ 8.011
Electric Eel3.2 ~ 7.411
Dolphin3.2 ~ 7.311
Chipmunk3.2 ~ 7.211
Bumblebee3.2 ~ 7.111
Arctic Fox3.1 ~ 7.011
4.2.x11
4.1.x8(버전 조정 불가)
  • Unity Editor 2022.2 미만 버전은 JDK 8만 지원한다. 해당 버전의 Unity Editor를 쓴다고 해서 Android Studio도 반드시 JDK 8을 써야 하는 건 아니지만, 혹시나 JDK 관련 에러가 다른 방법으로 고쳐지지 않을 경우 스튜디오 버전을 4.1.x로 내리는 것을 시도해보면 좋을 것 같다. 참고 공식문서
  • Keystore파일도 생성 당시 JDK 버전에 따라 달라지므로 JDK 버전 때문에 스튜디오를 재설치했을 경우 Keystore를 포함한 캐시 파일을 완전히 날리고 다시 설치하는 것이 좋다.

JDK ↔ Gradle

JDK 버전필요한 최소 Gradle 버전
197.6
187.5
177.3
167.0
156.7
146.3
136.0
125.4
★115.0
104.7
94.3
★82.0

AGP ↔ Gradle

AGP 버전필요한 최소 Gradle 버전
8.18.0
8.08.0
7.47.5
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.x6.7.1
4.1.x6.5
4.0.x6.1.1
3.6.x5.6.4
3.5.x5.4.1
3.4.x5.1.1
3.3.x4.10.1
3.2.x4.6

Gradle ↔ Kotlin

Gradle 버전내장된 Kotlin 버전테스트 완료된 최소 Kotlin 버전
8.0.x1.8.101.6.10
7.61.7.101.3.72
7.51.6.211.3.72
7.31.5.311.3.72
7.21.5.211.3.72
7.01.4.311.3.72
6.81.4.201.3.21
6.51.3.721.3.21
6.41.3.711.3.21
6.31.3.701.3.21
6.11.3.611.3.21
6.01.3.50
5.61.3.41
5.51.3.31
5.31.3.21
5.21.3.20
5.11.3.11
5.01.3.10

Unity ↔ Gradle ↔ JDK

공식 문서

Unity 버전내장된 Gradle 버전호환되는 최대 AGP 버전지원하는 OpenJDK 버전
2023.17.3.37.2.111
2022.27.27.1.211
2022.1
2021.3
2021.2
2021.1 (2021.1.16f1 부터)
2020.3 (2020.3.15f1 부터)
6.1.14.0.18
2021.1 (2021.1.15f1 까지)
2020.3 (2020.3.14f1 까지)
2020.2
2020.1
5.6.44.0.18
2019.4
2019.3
2019.2
2019.1 (2019.1.7f1 부터)
2018.4 (2018.4.4f1 부터)
5.1.13.4.08
2019.1 (2019.1.6f1 까지)
2018.4 (2018.4.3f1 까지)
2018.3
2017.4 (2017.4.17 부터)
4.63.2.18
profile
유니티 게임 클라이언트 개발자를 꿈꾸는 뉴비

3개의 댓글

comment-user-thumbnail
2023년 8월 21일

안녕하세요 몇일동안 빌드 못해서 삽질하고있어요.
이렇게 잘 정리해주셔서 너무 고마워요,
근데 아직도 성공 못했어요 흑흑
궁금한게 있는데
유니티 버전은 2023.1.9 이며
Gradle 버전 7.3.3 /AGP 버전 7.2.1 JDK 버전 11
그럼 안드로이드에서도 똑같이 Gradle 버전 7.3.3 /AGP 버전 7.2.1 요렇게 맞춰야 하나요?
그리고 유니티에서 미니api ,타겟 api버전을 뭐로 선택 했는지 알려줄수있을까요?
감사합니다.

1개의 답글
comment-user-thumbnail
2024년 6월 21일

빌드로 며칠 고생했는데 잘 정리해주신 글 보고 바로 해결했습니다.
감사인사 남기려고 가입해서 글 남깁니다. 고맙습니다!

답글 달기