目的

Activity遷移時に

This Activity already has an action bar supplied by the window decor.
Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

とエラーがコンソールに表示され、アプリがクラッシュする。

環境

  • Android Studio 4.0.1
  • Kotlin 1.3.50

対応メモ

遷移元と遷移先でthemeの設定などが違うと表示される。
上のエラーはaction barの設定が異なると表示されるようです。

対応策としては2つあり、

  • 遷移先Activityでも、遷移元と同じthemeを設定する。
  • デフォルト使用のthemeに遷移元と同じ設定を追加する。

となり。以下より詳しく書いていく。

移先Activityでも、遷移元と同じthemeを設定する。

AndroidManifestで 遷移元が以下のようになっている場合、

<activity
    android:name=".MainActivity"
    ...
    android:theme="@style/AppTheme.NoActionBar"
    ...
</activity>
  
遷移先のActivityにも

android:theme=”@style/AppTheme.NoActionBar”

を追加して合わせる。  
  

### デフォルト使用のthemeに遷移元と同じ設定を追加する。
`/main/res/value/style.xml`ファイルにて
以下のようになっていて、
遷移元は*<style name="AppTheme.NoActionBar">*を参照。
遷移先は特に参照していない場合。
遷移先はデフォルトの*name="AppTheme"*が使われるよう。  
なので、そこに
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
の値を追記する必要がある。  


上記どちらかを対応すれば、遷移時にエラーが表示されることなく、うまく機能した。