블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2738)
Unity3D (817)
Programming (475)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (58)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
05-05 00:02

Unity 2021.3.34f1

----

 

Unity 2021.3.34f1에서 Android 빌드 테스트를 하다보니 아래와 같이 2가지 이슈가 있었다.

 

1) Android Target API Level 31 이후가 뜨지 않음.

2) Android 빌드 시, 빌드는 잘되지만 켜자마자 Runtime Crash가 발생함.

----

 

[1) 이슈]

1)의 경우는 Unity 설치 Path에 빈 칸( )이 있어서 발생하는 문제라고 한다.

 

[결론]

Unity Hub의 설치 폴더를 빈 칸( )이 없는 Path로 변경하고(Unity Hub 완전 종료 후 재실행 필요) 유니티를 다시 설치하자.

 

 

[2) 이슈]

유니티 업데이트 하고 1)의 이슈 해결하고 Android 빌드했더니, 아래와 같은 Crash 로그가 뜬다.

(iOS는 정상적으로 빌드 됨)

 

[Crash Log] signal 6 (SIGABRT), code -1 (SI_QUEUE)

 

검색해보니 아래 [참조]와 같은 내용과 해결책이 적혀 있는데,

따라해봐도 계속 Crash가 나는걸 봐선 이번 이슈와는 관련이 없는 것 같다.

(결국 Crash Log로 검색해서는 현재 상황에 맞는 답을 찾지 못했다)

 

[참조] https://stackoverflow.com/questions/76222872/unity-android-receiving-signal-crashes

 

Unity Android receiving signal crashes

Backstory I built my unity app to android x64 using IL2CPP which has worked fine in the past but after a lot of changes I'm now getting crashes somewhat spontaneously. Signals received: signal 6 (

stackoverflow.com

 

그래서 좀 더 고민하다보니 현재 프로젝트 2개를 관리중인데 Unity 2021.3.34f1에서 하나는 Runtime Crash가 나고, 하나는 Crash가 나지 않아서 비교해 보다보니 다른점이 있었다.

Crash가 나는 쪽은 대용량(150MB 이상) aab 파일 생성을 위해 Play Asset Delivery 1.7.0이 들어있었고,

Crash 가 나지 않는 쪽은 없었다.

 

혹시나하고 Play Asset Delivery를 지우고 빌드해보니 정상적으로 빌드되고 잘 실행된다.

그래서 다시 한 번 Play Asset Delivery를 현재 기준 최신 버전인 1.8.2(2024-02-16 현재 기준 최신)를 넣고 빌드해보니 역시나 잘 실행된다.

Unity 2021.3.34f1부터 Google 라이브러리 중 뭔가 바꼈다고 하는 것 같은데,

정황상 바뀐 Google 관련 라이브러리가 Play Asset Delivery 1.7.0 버전과 호환이 안되는 것 같다.

 

이전에는 Unity 2021의 gradle 버전이 기본 4.0.1이어서 Play Asset Delivery 1.7.0을 써야 됐는데,

GoogleMobileAds(Admob) 8.6.0 버전부터 gradle 4.2.0을 강제해서 올리다보니

Play Asset Delivery 1.8.x 버전대를 쓸 수 있는 상황이 왔다.

 

[결론]

Unity 2021.3.34f1 이상에서 제목과 같은 Runtime Crash가 나는데 Play Asset Delivery 1.7.0을 사용하고 있다면,

gradle 4.2.0으로 올리고, Play Asset Delivery 1.8.2(2024-02-16 현재 기준 최신)로 교체한 후 빌드해 보자.

 

[정리]

Unity 2021.3.33f1 이하 : Play Asset Delivery 1.7.0 사용

Unity 2021.3.34f1 이상 : Play Asset Delivery 1.8.2 사용

 

 

[참조] https://developers.google.com/unity/archive?hl=ko#play_asset_delivery

 

Unity용 Google 패키지 다운로드  |  Google for Developers

 

developers.google.com

반응형
Posted by blueasa
, |

Unity 2021.3.34f1

----

 

Unity 2021.3.33f1에선 잘되던게 Unity 2021.3.34f1을 설치하고 아래와 같은 에러가 뜨면서 Android Target API Level 31 이상이 뜨지 않는다.

해당 증상은 Unity 2021.3.35f1에서도 해결되지 않았다.(고칠 생각이 없는건가?)

 

[Error Log]

CommandInvokationFailure: Failed to update Android SDK package list.
C:\Program Files\Unity\Hub\Editor\2021.3.34f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\cmdline-tools\2.1\bin\sdkmanager.bat --list

 

관련 이슈 및 해결방법은 아래 참조 링크에서 볼 수 있다.

 

관련 문제는 결국 기본 설정 폴더인 'C:\Program Files' Path의 사이에 있는 빈 칸( ) 때문이란다.

유니티 관계자는 구글 탓을 하고 있는데,

Unity Hub에서 에디터 기본 설치 폴더를 'C:\Program Files\Unity\Hub\Editor'로 잡고 있으면서 남 탓 하는것도 웃기고..

Unity 2021.3.34f1을 기본 설치폴더에 설치하고 실행만 해봤어도 아는 버그를.. 결국 테스트도 안한다고 자백하는 꼴 아닌가..

 

아무튼 해결 방법 2가지를 제시 하는데,

나중을 생각해서라도 심플하게 아래와 같이

Unity Editor 기본 설치 폴더를 'C:\Program Files\Unity\Hub\Editor'에서 'C:\Unity\Hub\Editor'로 옮기자.

 

 

[참조]

https://forum.unity.com/threads/commandinvokationfailure-failed-to-update-android-sdk-package-list.1535458/

 

Bug - CommandInvokationFailure: Failed to update Android SDK package list.

Just updated to 2021.3.34f1. Using all default Unity supplied SDKs. Unable to list target platforms. Please make sure the android sdk path is correct....

forum.unity.com

 

반응형
Posted by blueasa
, |