タイトル通り、今回は Android で発生したエラーの対処法についてです。
以前に開発したアプリの修正を行っていたところ、確か現在の Activity
から別の Activity
に Intent
を使って遷移した際に「java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation」というエラーと共にアプリが強制終了しました。
参考にさせていただいた記事はこちらから。
java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation – Qiita
https://qiita.com/oxsoft/items/042aaa6e9c7ae828e967
全く同じ状況だったので、大変参考になりました…!
参考サイトによると、クラッシュ原因は下記の 4つを満たすと発生するそうなので、どれか一つでも対処すればOKです。
- Android 8.0 の端末
- targetSdkVersion が 27 以上
- 背景を透過にしている
- 画面の向きを固定している
私は 4番目の「画面の向きを固定している」を変更することで対応しました。
…というか、これを変更する以外の選択肢がないのでは…?
画面の向きを固定しない方法については、下記のサイトを参考にさせていただきました。
Y.A.M の 雑記帳: Android 画面の向きを設定
http://y-anz-m.blogspot.com/2010/09/android.html
設定方法は AndroidManifest.xml
内にある、画面向きを固定しないアクティビティの android:screenOrientation
を behind
に設定するだけです。
サンプルコードは下記のとおりです。
<activity android:name=".[アクティビティ名]" android:label="@string/app_name" android:screenOrientation="behind" />
対処方法としては以上です。
再度アプリをビルド・実行したところ、クラッシュすることなく問題なく動作しました!
以上、「java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation」エラーでアプリがクラッシュする時の対処法でした。
ご参考になれば幸いです。