Trouble Shooting

[유니티] Mobile Android Version 14 Crash

JiHxxn 2024. 4. 2. 19:29

😫 문제 발생

  • PlayStore에 올려놓고 문제가 없었던 앱이 시작과 동시에 뻗어버린다는 문의가 들어옴.
  • 심사 제출 전 테스트할 때 문제도 없었고, PlayStore 심사 통과도 되었는데, 유추가 되지 않았음.
  • 해당 프로젝트를 열어 빌드 테스트 해보니 앱이 크래쉬 나기 시작했음.

⚒️ 문제 유추 방법 - 1. Android LogCat

앱이 시작과 동시에 뻗어버리기 때문에 앱에서 로그를 확인할 수 없었다.

package Manager - Android LogCat - Import

모바일과 연결이 되었다면 모바일의 모든 Log가 찍히기 때문에, Tag 카테고리 클릭 후 Unity, CRASH 토글을 선택해주어 Log를 걸러 준다.

😵‍💫 해당 에러 로그 이미지

  • 로그 내용은 널 포인터 역참조로 인해 발생.
  • (AwakeStart 함수에 Log를 남겨 놓았지만 Log는 하나도 걸리지 않았음)

⚒️ 문제 유추 방법 - 2. Log 검색 (Android CRASH)

CRASH의 가장 큰 이유 2가지는 널 포인터(Null Pointer) 역참조 or 메모리 이슈

1. 널 포인터(Null Pointer) 역참조

  • 널 포인터(Null Pointer) 역참조는 '일반적으로 그 객체가 널(Null)이 될 수 없다.'라는 가정을 위반했을 때 발생한다.
    • 앱이 시작될 때 작동하는 함수(Awake, Start) 함수 모두 검사 해보았지만 문제가 발견되지 않았음. Logcat에 Log조차 찍히지 않았음.

2. 메모리 이슈

  • 메모리 사용량 초과로 발생한다.
    • 메모리 프로파일러를 통해 메모리 사용량을 확인할 수 있어 확인해 보았지만, 앱 메모리엔 문제가 없었다.

⚒️ 문제 유추 방법 - 3. 상황 재정리

어떤 시점을 지나 CRASH가 나기 시작했다.

  • Logcat 로그로도 유추 할 수 없었다.
  • 특정 시점으로 부터 앱이 뻗기 시작했고, 같은 프로젝트의 iOS 빌드한 앱은 작동이 잘되었다.
  • Android의 문제라면 버전 문제 일수도 있겠다.
    • One UI 6.0 업데이트와 동시에 Android 13에서 14로 업데이트가 되었었다.
      • 그래서 회사에 있는 태블릿 중 Android 13 버전인 태블릿으로 테스트해본 결과.. 작동이 CRASH 없이 작동이 잘 되었다.

⚒️ 문제 해결 방법 - 1. 유니티 버전 업

해당 프로젝트는 21.3.9f1 버전을 사용하고 있었음.

  • 기존 다른 프로젝트에 적용되고 있던 22.3.12 f1 버전으로 업데이트 진행
  • 결과는 작동 안됨… 🤦‍♂️🤦‍♀️

여기서 멘탈이 나가버렸음. 검색 및 유추해 본 방법이 다 작동이 안 되고, 당장 라이브 서비스 중인 프로젝트라 심적으로 많이 흔들렸음

버전 업 이슈를 다시 검색해봄.

Unity IssueTracker - [Android] Crash on Android 14 when a developmement build is created with API Level 34

 

Unity IssueTracker - [Android] Crash on Android 14 when a developmement build is created with API Level 34

Reproduction steps: 1. Open the attached project ”apiProject” 2. Open the “Player Settings > Player > Other Settings > Targ...

issuetracker-mig.prd.it.unity3d.com

Unity IssueTracker - [Android] TargetAPI 34 crash on launch

 

Unity IssueTracker - [Android] TargetAPI 34 crash on launch

*Steps to reproduce:* # Open the attached 1361131_windowed-trunk project # Build the application without changing settings # Deploy ...

issuetracker.unity3d.com

  • 유니티 IssueTracker에서 비슷한 문제를 발견했고, 그중 특정 버전은 수정이 들어갔다는 내용.
    • 재현 가능한 버전 : 2023.3.0a4, 2021.3.33f1, 2022.3.14f1.

⚒️ 문제 해결 - 유니티 버전 업

  • 2022.3.14f1 버전으로 버전 업 후 빌드 해보니 정상적으로 작동하기 시작했음. 🕺💃
    • 생각보다 자료가 없어서 힘들었음.
    결국 21.3.9 f1 → 22.3.12 f1 → 2022.3.14 f1의 단계를 지나 CRASH 해결

📒 버그 요약정리

  1. Android 14 버전 OS 업데이트 후 앱 CRASH
  2. 유니티 SDK 등 버전 이슈로 기존 운영하던 유니티 버전을 여기 에서 확인 후 버그 수정된 버전으로 버전 업데이트 시켜주면 됨.