$ expo eject
実行後、なぜかAndroidで起動しなくなった。
原因
差分を順に確認してみると、
android/app/src/main/res/drawable/splashscreen_image.png
を削除すると起動することがわかった。
解消法
この場合、
android/app/src/main/res/drawable-* という名前の各ディレクトリへ splashscreen_image.png をコピーすれば治る。
より詳細に
どうやら原因はAndroidバージョンに合ったディレクトリ( drawable-* )内にスプラッシュ画像が必要なのに、存在していないから。らしい。
まず、各画像はクオリティに合わせて以下のようなディレクトリに分けられている。
android/app/src/main/res/drawable-xhdpi/android/app/src/main/res/drawable-xxhdpi/android/app/src/main/res/drawable-xxxhdpi/
が expo eject 直後、 splashscreen_image.png は
android/app/src/main/res/drawable/ にしか存在していない。
最近のAndroidバージョンではハイクオリティな画像を参照しようとして android/app/src/main/res/drawable-xxhdpi/ 内の画像を参照しようとするので、そこに求めている画像がないとクラッシュの原因となる。
らしい。
公式ドキュメントにも乗っていなかったので結構詰まった。。。
以上。
