Я пытаюсь создать службу android для обработки сообщений Firebase (библиотека nativescript-plugin-firebase не позволяет мне использовать сообщения только для данных в фоновом режиме), но я не могу показаться чтобы сервис работал правильно. В частности, я получаю следующее исключение при получении уведомления (и иногда при запуске приложения):
System.err: java.lang.RuntimeException: Unable to instantiate service com.tns.services.CustomFCMService: com.tns.NativeScriptException: Cannot find object id for instance=com.tns.services.CustomFCMService@5a4269d
System.err: at android.app.ActivityThread.handleCreateService(ActivityThread.java:3940)
System.err: at android.app.ActivityThread.access$1500(ActivityThread.java:219)
System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875)
System.err: at android.os.Handler.dispatchMessage(Handler.java:107)
System.err: at android.os.Looper.loop(Looper.java:214)
System.err: at android.app.ActivityThread.main(ActivityThread.java:7356)
System.err: at java.lang.reflect.Method.invoke(Native Method)
System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Моя служба определена в TypeScript следующим образом:
@JavaProxy('com.tns.services.CustomFCMService')
class CustomFCMService extends (com.google as any).firebase.messaging.FirebaseMessagingService {
constructor() {
super();
}
public init() {
/* Do nothing */
}
public onMessageReceived(message: any) {
this.super.onMessageReceived(message);
/* Handle message receipt */
}
}
Я также добавил, изменил следующий мой файл веб-пакета (я могу предоставить остальную часть файла, если необходимо):
// Add your custom Activities, Services and other Android app components here.
const appComponents = [
"tns-core-modules/ui/frame",
"tns-core-modules/ui/frame/activity",
resolve(__dirname, 'src/app/core/android/custom-fcm-service') /* My custom service */
];
И, наконец, я добавил следующее к своему AndroidManifest.xml
(внутри тег application
):
<service android:name="com.tns.services.CustomFCMService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
Я пытался изменить различные вещи в AndroidManifest
, файле службы и конфигурации веб-пакета, но не могу заставить его работать.
Спасибо!