Android ビルドは成功するけど「App Name has stopped」となる（Failed resolution of: Lcom/google/firebase/iid/FirebaseInstanceId）

#環境と概要
Ionic + Capacitorのクロスプラットフォームアプリ

下記ドキュメントの通りCapacitor 3にアップデートしたら、大惨事に見舞われた。。。。

https://capacitorjs.com/docs/updating/3-0

![Screenshot_1626789186.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/167220/66d0a31a-78ff-115d-8803-2db656603d73.png)

ビルドは成功するのだが、、、**エミュレーターでアプリを起動すると、起動した瞬間に落ちるのだ！！**
なぜだーーー。

Android Studioでのエラーログはこんな感じ👇

```console
15690-15775/com.sample.app E/Capacitor: Serious error executing plugin
    java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:121)
        at com.getcapacitor.Bridge.lambda$callPluginMethod$0$Bridge(Bridge.java:584)
        at com.getcapacitor.-$$Lambda$Bridge$25SFHybyAQk7zS27hTVXh2p8tmw.run(Unknown Source:8)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.os.HandlerThread.run(HandlerThread.java:65)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/iid/FirebaseInstanceId;
        at com.capacitorjs.plugins.pushnotifications.PushNotificationsPlugin.register(PushNotificationsPlugin.java:84)
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:121) 
        at com.getcapacitor.Bridge.lambda$callPluginMethod$0$Bridge(Bridge.java:584) 
        at com.getcapacitor.-$$Lambda$Bridge$25SFHybyAQk7zS27hTVXh2p8tmw.run(Unknown Source:8) 
        at android.os.Handler.handleCallback(Handler.java:789) 
        at android.os.Handler.dispatchMessage(Handler.java:98) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.os.HandlerThread.run(HandlerThread.java:65) 
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.iid.FirebaseInstanceId" on path: DexPathList[[zip file "/data/app/com.hCalendar.app-kcbMWcDCISP0zTQX3p1GnQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.sample.app-kcbMWcDCISP0zTQX3p1GnQ==/lib/x86, /system/lib, /vendor/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
```

プッシュ通知系で何かしらの問題がありそうなことだけは把握できたけど。。。



#"com.google.firebase:firebase-iid"とかいつから必要になった！？
どうやら色々とアップデートしたせいで、新たなdependencyを追加する必要があったようです:expressionless:

`android/app/build. gradle`を下記のように編集

```gradle:build.gradle(app)
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
    implementation project(':capacitor-android')
    testImplementation "junit:junit:$junitVersion"
    androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
    androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
    implementation project(':capacitor-cordova-android-plugins')
    implementation platform('com.google.firebase:firebase-bom:28.2.0')
    implementation 'com.google.firebase:firebase-messaging'
    implementation 'com.google.firebase:firebase-analytics'
    implementation "com.google.firebase:firebase-iid" // 追加！！
}
```

これでアプリを無事起動できました！！

#参考

https://github.com/mixpanel/mixpanel-android/issues/744