Unity | 유니티/Unity 버그 수정 일지

[Unity] APK 빌드 실행 에러 | Split Application Binary

maintain_H 2023. 5. 19. 13:30
반응형

 테스트를 위해 ABB가 아닌 APK로 빌드를 했다.

플레이 스토어에 출시했을 때는 실행이 안 되는 버그는 없었기에 생각없이 그냥 APK 파일로 빌드를 했다.

 

 근데 이제 APK를 통해 게임을 폰에 설치했을 때는 실행이 안 되는 무슨 말도 안되는 버그가 생겼다..

놀랍게도 Build Settings에서 Build And Run으로 폰으로 연결해서 빌드 했을 때는 문제 없이 게임이 실행이 되었다.

 

그래서 로그캣을 찍어보니..

 

NullReferenceException: Object reference not set to an instance of an object.

at TMPro.TMP_Settings.get_defaultStyleSheet ()

.........

어쩌고 저쩌고가 나왔다..

 

 

 진짜 몇 시간동안 이것저것 삽질 많이 해봤는데 결국 해결 방법은 매우 간단했다.

 

Build Settings -> Player Settings... -> Publishing Settings에 들어가면 맨 밑에 있는

Split Application Binary를 체크해제 하면 된다.

 

 

이렇게 간단한 걸 몇 시간이나 붙잡고 있었다니.. 그래도 해결해서 다행이라고 생각한다..

 

[ Split Application Binary ]

 

 이제 이게 뭐길래 이거 때문에 에러가 났는지 궁금해서 찾아봤다.

유니티 레퍼런스에 따르면

APK 확장 파일(OBB) 지원

APK 확장파일은 Google Play 스토어의 100MB 앱 크기 제한에 대한 해결 방법입니다. 만일 앱이 100MB를 초과하는 경우 출력 패키지를 주 부분(APK)과 확장 파일(OBB)로 나누어야 합니다.

 

 결국은 큰 프로젝트의 용량을 줄일 수 있도록 APK와 OBB로 나눈다는 뜻이다.

이번 프로젝트는 크기가 크지 않기 때문에 빠르게 OBB와 손절을 했다.

물론 프로젝트의 크기가 크다면 OBB를 이용해야 할 수도 있다. 이 방법도 레퍼런스에 잘 나와있으니

유니티 레퍼런스 [여기]에 들어가서 확인하길 바란다.

 

 그렇다면 OBB란 무엇인가.. 이것도 역시 레퍼런스에 나와있다.

Split Application Binary 옵션이 활성화된 경우 앱은 다음과 같이 분할됩니다.

APK: 실행 가능한 파일(Java와 네이티브), 플러그인, 스크립트, 첫 씬 데이터(Index 0)를 포합합니다.
OBB: 나머지 씬, 리소스, 스트리밍 에셋 등 나머지 모두를 포함합니다.

 

 그리고 Build and Run으로 빌드했을 때는 문제 없이 실행되었던 이유까지 알게 되었다.

유니티 레퍼런스에 보면

Build and Run 을 선택한 경우 Unity는 디바이스에 APK와 OBB 파일을 설치합니다. __Build__ 를 선택하고 ADB 유틸리티를 사용하여 앱을 수동으로 설치하려면 APK 파일을 우선 설치한 후 OBB를 디바이스의 올바른 위치에 복사해야 합니다.
(중략)
앱이 시작하였으나 OBB를 찾아서 로드할 수 없는 경우 첫 신만을 사용할 수 있게 됩니다. OBB의 콘텐츠를 분리하여 사용하지 마십시오. APK와 OBB는 각각의 번들로서 단일 APK를 취급하듯 해야 합니다.

 

 네.. 뭐.. 예.. 이래서 안 된 것이었다..

같은 문제를 겪는다면 본인처럼 헛수고 안 하는 마음으로 포스팅을 마칩니다.

감사합니다.

반응형