Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
관리 메뉴

Dev.

Only fullscreen opaque activities can request orientation 해결법 본문

Android

Only fullscreen opaque activities can request orientation 해결법

Pppdw 2019. 12. 4. 11:12

앱올리고 위의 이슈 때문에 죽을 뻔 했다.

대다수가 targetSdkVersiuon 을 27 이상으로 올렸을 때 발생된다.

 

1. 왜?

 

위 사진에서 windowIsTrasnlucent - true 가 문제다.

더 파고 들어가면, 위 style 이 적용된 상태에서 아래와 같이 orientation 을 지정 해버리면 위 exception 이 발생된다.

 

 

2. 누가?

API 26 의 Activity.java 를 오픈해보자.

위의 내용은 onCreate 부근에서 찾을 수 있다.

위 사진의 exception 부분이다.

API 26 부터 trunslucent 가 지정된 액티비티(투명한)는 화면의 회전을 강제하지 못하도록 수정되었다.

 

그런데 참 웃기다.

위 코드가 보이질 않아서 한참 찾았는데, API 27부터는 위 코드가 제거되었다고 한다.

 

위 이슈는 API 26에서만 발생 된다는 것, 즉 Android 8.0 기기에서만 발생된다.;;

 

3. 어떻게 해결할까?

간단하지만, 해당 부분에 대한 테스트 및 동작 확인은 꼭 필요하다.

 

3-1) 애초에 orientation 을 안주면 된다.

manifest 에서 지정한 경우 orientation 을 제거 하면되고,

코드레벨에서 setRequestedOrientation 으로 작업한 경우 콜백 메소드를 수정 하면된다.

api version 26 혹은 version_code.O 가 아닐 경우에만 operate 해주면 된다.

3-2) setRequestedOrientation 부분을 try/catch 로 작업하여도 된다.

 

 

 

 

Comments