- 投稿日:2020-03-16T11:15:02+09:00
Expecting android:screenOrientation=“unspecified”...の対処法
困ったこと
Andsroid3.6+から、AndsroidManifestファイル内で下記のように、Activityの向きを固定に指定しているとワーニングが出るようになりました。これは、Googleより「ユーザの(画面の向きを変えれる)選択肢を狭めないように横向きにもアプリを対応させましょうね。」というメッセージなわけでございます。
対処法① アプリを横向き対応する
ユーザの利便性を追求するのであれば横向きもサポートするほうが良いのは当然です。
なお、ワーニングの指示通り下記のどちらかを指定すれば消えます。<activity android:screenOrientation="fullSensor" android:screenOrientation="unspecified" />
パラメータ名 説明 unspecified デフォルト値。システムが画面の向きを選択します。システムが使用するポリシー、つまり特定の状況における選択は、端末により異なる場合があります。 fullSensor 画面の向きは、端末の方向センサーによって決まり、4 つの画面の向きすべてを使用できます。これは "sensor" と似ていますが、端末の通常の動作にかかわらず、4 つの画面の向きすべてを使用できる点が異なります(たとえば、一部の端末では通常、反対の縦向きや反対の横向きは使用しませんが、それらの向きも有効になります)。API レベル 9 で追加。 https://developer.android.com/guide/topics/manifest/activity-element
対処法② とりあえず見えなくしたい
対象のActivityタグに
tools:ignore="LockedOrientationActivity"
を追加しましょう。
これでワーニングは見えなくなります。<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="jp.co.xxxxx.xxxxx"> ... <activity android:name=".view.main.MainActivity" android:label="@string/title_activity_main" android:launchMode="singleTop" android:screenOrientation="portrait" tools:ignore="LockedOrientationActivity" /> ... </manifest>対処法③ 無視する
一応これでもビルドは通ります。
ワーニングが気にならない人、後ほど直すからとりあえずワーニングだけは出しておきたい人、はそのままで良いでしょう。参照