Android 8 (Oreo) 以降で、透過Activityがクラッシュ

久々に Google Play へ登録したアプリを更新しようとしたら、targetSdkVersion は 26 以上、2019/11/1以降は 28 以上じゃないとアップできねーとか表示されて、ターゲットをあげた途端に色々動作しなくなったり強制終了するようになったのメモ

SdkVersionを上げたら、通知から読んでいた 透過Activityがクラッシュするようになった
  1. protected void onCreate(Bundle savedInstanceState) {  
  2.         super.onCreate(savedInstanceState); // ←ここで既に落ちてる  
  3.           
  4. }  
どこから呼び出しても落ちるため、調べていたら 透過Activityで画面の向きを固定設定していると Oreoでクラッシュするという貴重な情報にたどり着く
  1. <activity android:name=".HogeActivity"  
  2.     android:screenorientation="portrait"  
  3.     android:theme="@android:style/Theme.Translucent.NoTitleBar">  
  4.     <intent-filter>  
  5.         <action android:name="android.intent.action.MAIN">  
  6.     </action></intent-filter>  
  7. </activity>  
のように
    android:screenOrientation="portrait" や
    android:screenOrientation="landscape"
と共に
    android:theme="@android:style/Theme.NoDisplay" や
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
が設定されているパターン

今回利用していた Activityは即座に終了するものだったので、回転設定を外しました

コメント