티스토리 뷰


GLSurfaceView를 상속받은 View 에서 화면 회전시 onPause 등을 타면서 발생한다

LLDB 가 안붙은 java debugging 환경에서는 그냥 activity가 재시작되는 것처럼 보이는데,

jni 소스로 인해 LLDB가 있으면 sigsegv가 계속 발생함.

화면 회전시 onPause가 불리는 이유는,

https://aroundck.tistory.com/36

위 링크에서 언급된것 처럼

configure 설정을 빼먹어서, 기본 정해진 동작대로 activity 가 재시작되기 떄문

아래도 비슷,

https://stackoverflow.com/questions/46930327/how-to-properly-rotate-android-device-with-glsurfaceview-while-containing-opengl

 Add android:configChanges="orientation|screenSize" to your Activity in AndroidManifest.xml and you will be fine.

어느 극단주의자는,

<activity android:name="your.package.name.YourActivity" android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|uiMode|screenSize|smallestScreenSize" android:screenOrientation="landscape">

예전에 할때는 아래와 같이 로그가 나왔던거 같은데; 왜 이젠 로그도 없나

https://stackoverflow.com/questions/16309459/android-opengl-surface-crashing-on-device-orientation-change

그런데 대체 왜 저걸 빼먹으면 안에서 죽게되는 걸까?

대략, 저때는 Surface 쪽에서 에러검출용 코드로 fill 된 address 참조하는 것이고

나의 경우는 0x0 을 참고해서 죽는 듯

대략, 다른 샘플을 참조하다가 원인을 알았다

AppCompatActivity 와 Theme / Style 이 설정된 샘플에서만 문제가 발생했다,

그냥 Activity로 바꾸니까 문제가 사라짐

집에서, Hello JNI 로 테스트 하다가 특정 버전에서는 문제 없는 것을 발견

2개다 낮은 버전으로 하면 문제가 없다.

이거 적고나니까 예전에 관련 문제 stackoverflow나 bug report에서 본거 같은데...

테스트 타겟은 samsung SM-G950N.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크