반응형

 

 

 

 

URP 프로젝트에서 Unity chan 모델을 사용하여 간단한 조작을 할 수 있는 게임을 만든후 빌드, 앱을 실행해봤는데 실행하자마자 앱 크래시가 발생했다.

 

로그캣을 확인해 보니 다음과 같은 크래시 로그를 확인할 수 있었다.

05-13 10:35:14.027 26023 26045 E CRASH   : #00 pc 000000000046afa8  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #01 pc 0000000000abbdec  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #02 pc 0000000000abbfec  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #03 pc 0000000000abbf6c  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #04 pc 00000000005cd30c  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #05 pc 00000000005cfd5c  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #06 pc 00000000004a6330  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #07 pc 00000000004a7138  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #08 pc 00000000004a7d4c  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #09 pc 00000000004a8934  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #10 pc 0000000000601904  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #11 pc 0000000000615cd4  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/lib/arm64/libunity.so (BuildId: 58c4416265a9495b)
05-13 10:35:14.027 26023 26045 E CRASH   : #12 pc 000000000000430c  /data/app/com.UnityTechnologies.com.unity.template.urpblank-KJ_9V9jr1KDZTayNFGuYCA==/oat/arm64/base.odex

뭔지는 자세히 모르겠지만 libunity.so가 눈에 띄고, 유니티짱 모델의 툰 쉐이더가 Experimental이라 너무 의심이 가서 1차로 유니티짱의 모델을 빼고 실행해보니 정상적으로 실행이 된다.

그리고 libunity.so 관련 크래시에 대해서 찾아보니 Vulkan 그래픽스 API 때문에 발생하는 에러라고 한다.

(다른 사람들은 Admob과 Firebase하고 그래픽스 API가 충돌된다고 하는데 쉐이더는 둘째치고 이런 서드파티 SDK가 충돌나는건 왜그런지 모르겠다..)

 

 

 

해결방법

1. EditProject SettingsPlayerOther SettingsRendering 카테고리에서 Auto Graphics API를 해제한다.

2. 해제를 하게되면 Graphics APIs를 설정할 수 있게 되는데, Default로 Vulkan, OpenGLES3 순서로 설정되어 있을 것이다.

3. 이 순서를 OpenGLES3, Vulkan 순서로 변경하거나 Vulkan을 삭제한다.

 

이렇게 변경한 뒤, 빌드해서 실행하면 안드로이드에서 문제없이 실행이 가능하다.

 

 

 

 

 

반응형
반응형

 

 

 

 

유니티 에셋스토어에서 받은 모델에 베지어 커브로 움직이는 스크립트가 있었는데, 해당 스크립트를 Record기능으로 녹화를 하면 다음과 같은 에러가 발생했다.

 

- Invalid AABB

- Assertion failed on expression: 'IsFinite(distanceForSort)'

- Assertion failed on expression: 'IsFinite(distanceAlongView)'

 

구글링을 해봤는데 어떤 글에서는 모델의 문제라고 하고, 어떤 글에서는 Physics 설정문제라는 글이 보였는데..

나같은 경우엔 0으로 나눗셈을 하는데서 발생하는 에러였다.

 

베지어 커브 스크립트에 변수를 Time.deltaTime으로 나누는 코드가 있었는데, Time.deltaTime을 Record로 녹화를 시작하면 값이 0이되는것같다.

그래서 Time.deltaTime을 고정값으로 따로 수정하니 해당 에러가 발생하지 않고 정상적으로 작동했다.

 

 

 

 

반응형
반응형

※ 본 포스팅은 유니티 버전 2018.4.20(LTS)을 대상으로한 솔루션입니다.


구글 플레이 업로드를 위해 안드로이드 빌드를 하던중 갑자기 에러를 발견하게 된다.

 

com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed

 

하루 전까지만 해도 잘 되던 빌드가 위와 같은 에러가 뜨면서 진행되지를 않는다.

처음보는 에러에 검색을 해봤지만.. 유니티에서 문제가 된 사람은 거의 없던건지, 잘 못찾았던건지 안드로이드 스튜디오에서 작업한 사람의 문의글로 가득한 페이지를 보면서 이것저것 따라해보기 시작했다.

 


시도 1) 안드로이드 스튜디오 업데이트

 

2018 버전으로 작업한 프로젝트이기에 유니티에서 제공하는 SDK를 사용하지 않고 안드로이드 스튜디오에서 받은 SDK를 사용중이라 시도를 해봤다.

 

안드로이드 스튜디오 몇몇 버전이 AAPT2라는게 기본적으로 사용되어진다고 해서 최신버전으로 바꾸거나 AAPT2를 비활성화 하라는 내용인데, Unity에 대한 설명이 아니라서 일단 안드로이드 스튜디오를 최신버전으로 변경후 빌드를 시도해봤다.

 

결과 : 실패


시도 2) .android .gralde 폴더 제거

 

이 시도는 스택오버플로우에서 보게된것인데, 위의 폴더를 제거하면 빌드가 된다고하는 내용이었다.

※ 위의 폴더들은 C:\Users\UserName 폴더 안에 존재한다.

 

.android, .gradle 폴더 삭제후 빌드를 시도해봤다.

 

결과 : 실패


시도 3) mainTemplate.gradle 설정

 

이 시도는 gradle 버전을 수정하여 해결하는 방법이다.

 

유니티 Build setting - Publishing setting에 Main gralde template를 체크해주면 플러그인 폴더에 mainTemplate 파일이 생성된다.

 

해당 파일을 열면 dependencies 항목에 다음과 같이 적혀있다.

dependencies {
        classpath 'com.android.tools.build:gradle:3.4.0'
**BUILD_SCRIPT_DEPS**}
}

필자의 경우엔 위와 같이 gradle 버전이 3.4.0으로 되어있었는데, 해당 부분을 3.3.2로 변경후 저장, 빌드를 시도해봤다.

 

결과 : 성공

 


급하게 해결해야 했던 상황이라, 왜 저게 되는건지 자세한 사항은 파악하지 못했지만.. 일단 무사히 빌드가 되는것에 안도하고 위기를 넘기게 되었다.

 

자세한 사항은 추후 파악 후 서술할 예정.

반응형

+ Recent posts