#android #flutter #kotlin #firebase-cloud-messaging
#Android #флаттер #kotlin #firebase-облако-обмен сообщениями
Вопрос:
Мое приложение.kt содержит:
package com.example.somename
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.GeneratedPluginRegistrant
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"));
}
}
Ошибка, которую я получаю при ее запуске:
√ Built buildappoutputsflutter-apkapp-debug.apk.
E/AndroidRuntime(22518): FATAL EXCEPTION: main
E/AndroidRuntime(22518): Process: com.example.somename, PID: 22518
E/AndroidRuntime(22518): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.somename/com.example.somename.Application}: java.lang.ClassCastException: com.example.somename.Application cannot be cast to android.app.Activity
E/AndroidRuntime(22518): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2843)
E/AndroidRuntime(22518): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
E/AndroidRuntime(22518): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
E/AndroidRuntime(22518): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E/AndroidRuntime(22518): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/AndroidRuntime(22518): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
E/AndroidRuntime(22518): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(22518): at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime(22518): at android.app.ActivityThread.main(ActivityThread.java:6669)
E/AndroidRuntime(22518): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(22518): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/AndroidRuntime(22518): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
E/AndroidRuntime(22518): Caused by: java.lang.ClassCastException: com.example.somename.Application cannot be cast to android.app.Activity
E/AndroidRuntime(22518): at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
E/AndroidRuntime(22518): at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41)
E/AndroidRuntime(22518): at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
E/AndroidRuntime(22518): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2831)
E/AndroidRuntime(22518):
У меня все мои импортные файлы работают нормально, и все работает нормально, когда я не пытаюсь реализовать функцию фоновых сообщений. Файл kotlin также вызывается правильно в моем файле манифеста.
Я не уверен, что именно я делаю неправильно, и любая информация будет полезна! Спасибо.
Комментарии:
1. Пожалуйста, зарегистрируйте свой сервис в классе, который унаследован от Activity, а не от Application.
2. Можете ли вы показать в коде, я не знаком с Kotlin