티스토리 뷰
올해 구글 플레이스토어 에서는 타겟팅 API 레벨을 29로 하지 않은 앱은 업데이트도 되지 않는다는 정책변경을 발표했습니다.
이에 맞춰서 대부분의 경우 자동으로 타겟 API 레벨을 설정하여도 유니티 버전 향상에 따라 29에 맞춰서 되실수도 있지만 간혹 레벨 28로 맞춰져 수동적으로 29레벨을 설정해줘야 하는 경우가 생깁니다.(그게 접니다... 하하하)
보통 유니티 허브를 통해서 유니티 버전을 까는 과정에 안드로이드 빌드를 위한 모듈을 추가적으로 설치할 수 있습니다.
그러면 여기에 SDK 레벨 29가 설치가 되죠. 하지만 이상하게도 저는 레벨28이 설치가 되었습니다.
유니티 공식 포럼에서 유니티 기술자의 답변을 봐도 2019.x버전부터는 안드로이드 레벨 29를 지원한다고 언급하였으며
구글링 꽤 많은 곳을 뒤져봤지만 도움이 되는 정보를 얻지 못했습니다.
그래서 이것때문에 거의 5시간 이상 헤메고 있었죠. 서론은 이쯤하고 바로 해당 이슈 해결과정 공유해보도록 하겠습니다.
우선 흔히들 이런 문제를 겪을 때 하는 조치는 Build settings->other settings->target API level 드롭박스에서 API level을 29로 수동 변경합니다.
그리고나서 빌드 하였을 때 다음과 같은 경고창이 뜨는데요.
Required API level 29라는 경고문구 입니다.
저의 환경에서 API level 29를 타겟팅하기 위한 SDK 버전이 없다는 뜻이지요. 그래서 Update Android SDK를 눌렀을 경우 대개의 경우 정상적으로 업데이트가 됩니다. 하지만 또 다른 오류가 뜨는 경우가 있는데요.
추가적인 SDK 설치를 할수가 없다는 경고문구입니다. 수동적으로 SDK Manager를 실행시키라고 하고 있습니다.
근데 사실 여기서 나오는 경고문구의 경우 유니티에서 안드로이드에서 띄워주는 경고문구를 그대로 긁어서 띄워주는거기 때문에 사실상 여기서 나오는 문구는 유니티에서 낸 오류가 아닌 안드로이드에서 던져준 오류메세지입니다.
즉, 유니티에서는 해결할 방법이 없다는 얘기이지요...
유니티는 모듈추가를 통해 SDK를 내장 경로에 설치하여 빌드할 때 사용합니다.
그래서 우선 유니티 자체적으로 사용하는 SDK가 설치된 폴더로 이동하여봅니다.
폴더의 경로는 Edit -> Preferences->Externel Tools에 SDK의 경로가 자동으로 설정되어있을텐데요. 해당 경로를 복사하여 폴더를 열어보니 위와같이 역시나 안드로이드 28이 설치되어 있었습니다. 때문에 29를 타겟팅 하는 빌드가 실패했던것이지요.
그래서 해결방법으로 안드로이드 스튜디오 자체에서 SDK Manager를 통해 SDK 29를 설치한후 유니티에서 SDK 경로를 안드로이드 스튜디오 자체의 SDK경로로 변경하는 방법이 있습니다.
안드로이드 SDK Manager에서 API 29를 설치한 뒤에 상단의 SDK 경로를 복사 한 후 유니티의 Externel Tools의 SDK 경로를 변경해줍니다.
그 후에 빌드를 하였더니 이런 새로운 오류가 생깁니다. SDK Tools version 0.0 < 26.1.1
SDK Tools의 버전이 저는 0이라고 하네요.
그래서 바로 SDK Manager에서 SDK Tools의 설치여부를 봤더니 정상설치가 되어있었습니다....
만약 설치가 안되신 분들은 SDK Tools탭의 제일 상단의 SDK Build Tools의 설치여부를 확인하고 설치한 후 시도해 보시길 바랍니다.
*8/11 추가 내용 : 위 사진 경고창에서 정상적으로 SDK Build Tools가 설치 되었을 경우 Use Highest Installed를 선택하면 정상적으로 빌드가 가능합니다. 단, 저 경고창이 나타나지 않도록 하는 방법은 아직 알아내지 못하였습니다
만약 저처럼 정상설치가 되어있는데도 불구하고 위와 같은 오류가 그대로 뜨시는 분들을 위한 추가적인 해결방법으로 유니티에서 자체적으로 사용하는 SDK 경로를 변경하지 않고 해결하는 방법입니다.
안드로이드 스튜디오에서 SDK Manager상단의 SDK가 설치되어 있는 경로를 복사해 해당 폴더를 엽니다.
저는 SDK Manager에서 레벨30과 레벨29를 설치하였기 때문에 2개의 폴더가 있습니다.
여기서 우리가 원하는 29폴더를 통째로 복사합니다.
그후에 유니티에서 사용하는 SDK폴더를 열어 여기에 레벨29 SDK를 복사해줍니다.
기존의 28만 있던 폴더에 29가 추가되었습니다.
그 후에 유니티 Build Settings에서 타겟 SDK 버전을 29로 변경한 후 빌드를 하면 정상적으로 빌드가 완료됩니다.
질문은 언제나 환영합니다.
똑같은 절차를 밟았음에도 해결되지 않았을 경우 질문해주시고 최대한 빠른 시일내에 답변드리도록 하겠습니다
도움이 되셨다면 꼭 좋아요 한번씩 부탁드립니다 감사합니다.
'유니티' 카테고리의 다른 글
유니티 - 블러 쉽게 구현하기 (1) | 2020.12.01 |
---|---|
유니티 - JSON 활용 n차원 배열 (0) | 2020.08.26 |
유니티 - DateTime 활용하여 재화 지급 (4) | 2020.08.10 |
[유니티] 안드로이드 64비트 빌드 셋팅 (0) | 2020.07.27 |
[유니티] Failed to update Android SDK package list 빌드 오류 (4) | 2020.05.21 |
- Total
- Today
- Yesterday
- 젠킨스
- 유니티 직소퍼즐 구현
- Jenkins
- 구글맵
- 빌드 주기
- Jenkins Build Periodically
- 안드로이드
- C++
- 깃 용량문제
- c언어 기초
- c언어강의
- 백준
- Unreal Header Tool
- 유니티
- UHT
- 알고리즘기초
- 언리얼 기초
- 언리얼
- Connecting Jenkins Agent
- dfs
- refusing to run with root privileges
- C언어기초
- 알고리즘
- 언리얼 빌드
- Connecting Jenkins
- 안드로이드 구글맵
- 젠킨스 에이전트 연결
- 언리얼 사용자 정의 구조체
- 깃 허브 오류 해결
- Add Node
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |