도리안의 Java 개발 #2 - 안드로이드 앱의 화면 시작시 발생하는 IllegalStateException: Only fullscreen opaque activities can request orientation

avatar
(Edited)

이번엔 안드로이드 앱 관련 이슈입니다. 타겟 SDK를 28로 올린 후 일부 화면 진입시 아래와 같은 예외가 발생했습니다.

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

메시지를 그대로 이해하자면, 투명색이 있는 화면은 방향(orientation)을 설정할 수 없다는 것입니다. 예전에는 설정이 가능했는데, 지금은 안 되다니... 어이도 없었고, 이해도 안 되었죠. 스택오버플로우에도 들어가 보니 이에 대한 해결책들이 있었습니다. 그 중에 눈에 띄는 방법은 2가지였습니다.

앱 화면 시작시 IllegalStateException 해결 방법

  1. 자바 코드로 화면 방향을 설정한다.
  2. XML 파일에서 orientation을 "behind"로 바꾼다.

1번째 방법은 적용해 보았으나 여전히 IllegalStateException이 발생했습니다. 2번째 방법 적용으로 문제를 해결했습니다. 투명색을 사용하는 화면들의 방향을 portrait에서 behind로 변경했습니다. behind의 뜻은 아래와 같습니다.

화면 방향 behind의 뜻


(From the documentation of Android Studio Help)

한글로 풀어 쓰자면, 현재 화면의 방향은 상위 화면의 방향을 따른다는 것입니다. 최상위 화면은 투명색 배경을 쓰지 않아 화면 방향이 세로(portrait)이므로 문제 없습니다.

참고 사이트

https://stackoverflow.com/questions/48072438/java-lang-illegalstateexception-only-fullscreen-opaque-activities-can-request-o


aaronhong_banner.jpg



0
0
0.000
0 comments