20200316のAndroidに関する記事は1件です。

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>

対処法③ 無視する

一応これでもビルドは通ります。
ワーニングが気にならない人、後ほど直すからとりあえずワーニングだけは出しておきたい人、はそのままで良いでしょう。

参照

https://stackoverflow.com/a/60400979/6891441

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む