Flutter FCM with Android
에러 내용 :
Fatal Exception: java.lang.RuntimeException Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.RuntimeException: PluginRegistrantCallback is not set.
자세한 설명은 블로그 참조
[Flutter] Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.RuntimeExcept
Stacktrace Fatal Exception: java.lang.RuntimeException Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.RuntimeException: PluginRegistrantCall..
spiralmoon.tistory.com
친절한 블로거님 덕분에 쉽게 해결하나 싶었는데,
현재 진행중인 프로젝트는 Android가 Java가 아닌 kotlin으로 되어있는 상태,,, (왠지 모르겠음. 만들때 선택했던거같기도,,?)
해결방법 :
1. Applicaion.kt 를 생성하한다.
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
class Application : FlutterApplication(), PluginRegistrantCallback {
override fun onCreate() {
super.onCreate()
FlutterFirebaseMessagingService.setPluginRegistrant(this)
}
override fun registerWith(registry: PluginRegistry?) {
io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
}
}
생성경로는 MainActkvkty.kt가 있는 폴더에 동일하게 생성
대체적으로 <app-name>/android/app/src/main/java/<app-organization-path>에 있음.
2. 해당 Application.kt 맨 위에 package 추가
package com.example.myapplication
3. AndroidManifest.xml application태그 android:name 속성 변경
android:name="io.flutter.app.FlutterApplication" => android:name=".Application"
완료.