카테고리 보관물: Android

Unreal Engine Android 패키징 파일 실기기에서 실행 시 Blank 화면 나타나는 문제 해결

개요

개발 중인 게임의 대략적인 컨셉을 잡고 대상 플랫폼인 안드로이드 기기에서 어떻게 보이는지 확인하고 싶었습니다. 개발 초기부터 확인을 하고 진행해야 문제가 없기 때문입니다. APK 파일로 패키징 후 실기기에서 확인해보니 오류는 발생하지 않는데 Blank 화면만 나타났습니다. 이 문제를 해결하는 방법을 알아보도록 하겠습니다.

문제 해결 방법

Unreal Engine 5.5.3 환경입니다. Project Settings > Platforms > Android > Build > Support Vulkan 체크 해제 후 패키징 하면 문제 없이 화면이 나타났습니다.

Support Vulkan 체크 해제
Support Vulkan 체크 해제

시도한 다른 방법

처음 문제를 접하고 시도해 본 방법들을 참고로 알려드립니다. 여러가지 자료를 찾아보던 중 이러한 문제 때문에 개발 자체가 중단되었다는 글이 많이 있었습니다. 개발 초기부터 확인하는 것이 중요하다는 것을 다시 한번 느낄 수 있었습니다.

  • 모바일 기기가 감당하지 못하는 그래픽으로 Blank 화면이 나타난다는 정보
    일부 글에서 그래픽 설정이 너무 높게 되어 있고 성능이 낮은 기기에서 그럴 수 있다는 정보가 있어서 Level에서 가장 기본적인 것만 남기고 시도했으나 결과는 동일했습니다.
  • 카메라 문제 추측
    카메라의 위치가 잘못되어 패키징 되었을 때 엉뚱한 곳을 비추고 있어서 그럴 수 있다는 생각이 들어 다른 카메라를 추가해서 확인해 보았으나 해결되지 않았습니다.
  • 빛 관련 문제
    2D 프로젝트라서 광원이 필요 없었지만 빛 관련 문제일 수도 있다는 정보를 확인하기 위해 DirectionalLight를 추가하여 확인했지만 Blank 현상은 그대로 였습니다.
  • Target SDK Version, Minimum SDK Version 변경
    SDK Version 을 변경하여 해결했다는 글을 보고 변경해 보았으나 효과가 없었습니다.
  • NavMeshBoundsVolume 문제
    NavMeshBoundsVolume 크기가 아주 크게 잡혀 있고 그 내부에 AI 관련 컴포넌트가 있어서 그 영향인지 의심이 되어 크기를 줄이고 없애도 보았지만 해결되지 않았습니다.

화면에 아무것도 나타나지 않으면 많이 당황스러운데 이 글의 정보를 바탕으로 해결이 되었으면 좋겠습니다.

Android 13(API level 33) 이상 Storage 관련 오류 해결

개요

새로운 앱을 업로드 하는데 API level 34 이상이어야 했습니다. API level 이 낮은 장비에서 잘 동작해서 34 로 변경 후 구글플레이에 업로드 했습니다. 그런데 앱이 거부되었습니다.

거부 이유

메일의 제목은 조치 필요: 앱이 Google Play 정책을 준수하지 않음 이었습니다. 세부 내용을 확인해 보니 다음과 같았습니다.

발견된 문제: 손상된 기능 정책 위반

비정상 기능 정책을 준수하지 않는 콘텐츠가 포함되어 있습니다.

  • 앱이 로드되지만 응답하지 않음
메일 내용

문제 파악

이미지 까지 첨부되어 있어 확인해 보았습니다. 내용은 Storage 에 쓰기 권한을 요청하는 화면이었습니다.

첨부된 이미지

단순히 SETTINGS 를 눌러 권한을 허용하면 될 것 같은데 뭔가 좀 이상했습니다.

API level 34 를 지원하는 실제 테스트 기기가 없어서 에뮬레이터를 이용해서 테스트 해 보았습니다. 앱을 설치하고 실행하니 위와 같은 화면이 나타났습니다. SETTINGS 를 터치하니 앱의 권한 관리 화면으로 이동 되었습니다. 그런데 권한을 추가할 수 없고 요청된 권한 사항이 없다는 글자만 나타나고 비활성화 되어 있는 상태였습니다.

앱이 위의 화면에서 설정 화면으로 이동만 되고 더 이상 할 수 있는 것이 없어서 정상적으로 실행되지 않는다는 것을 확인했습니다.

문제 해결

이전 API level 에서는 처음에 나타나는 권한 부여만 선택해 주면 문제 없이 동작했습니다. 문제는 API level 33 이상에서 나타나는 것으로 생각되었습니다. 이리저리 찾아보니 AndroidManifest.xml 파일에 권한 관련 설정 부분에 추가 내용이 필요했습니다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />

android:maxSdkVersion=”32″ 를 위와 같이 추가해서 다시 업로드 하면 문제 없이 앱이 등록되었습니다.