当手动关闭并重新启动应用程序时,Gluon无法加载本机插件

我正在尝试将Gluon用于应用程序 . 我需要在后台运行一个需要永远保持活动的服务,因为它一直在轮询服务器上的更改,并且需要在事情发生变化时通知用户 .

胶子样本目录没有一个说明如何运行后台服务的示例 . https://gluonhq.com/developers/samples/

我已经在这个帖子上发布的答案后面实现了后台服务(还有其他几个在SO上) . Creating an Android background service that continuously polls a REST API for data使用纯Android设置和运行后台服务似乎很容易 .

我已经按照Gluon插件示例来实现我自己的Android服务插件 .

我可以在后台启动该服务 . 但是,如果我手动关闭所有应用并尝试再次启动应用,则Gluon会失败 . 该服务确实在后台运行 . 但该应用程序似乎让所有的混乱,并无法正确加载天真的插件 .

  • 在应用程序init方法中调用此方法时,查找我的服务的Android实现并抛出此错误: Services.get(MobilePlatformService.class).get()
06-24 10:28:23.314: W/System.err(12329): java.util.NoSuchElementException: No value present
06-24 10:28:23.314: W/System.err(12329):    at java.util.Optional.get(Optional.java:131)
06-24 10:28:23.314: W/System.err(12329):    at com.demo.apps.mobile.demo._init(demo.java:101) - CALLS Services.get(MobilePlatformService.class).get()
06-24 10:28:23.314: W/System.err(12329):    at com.demo.apps.mobile.demo.init(demo.java:53)
06-24 10:28:23.314: W/System.err(12329):    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:841)
06-24 10:28:23.314: W/System.err(12329):    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$138(LauncherImpl.java:182)
06-24 10:28:23.315: W/System.err(12329):    at com.sun.javafx.application.LauncherImpl.access$lambda$1(Unknown Source:8)
06-24 10:28:23.315: W/System.err(12329):    at com.sun.javafx.application.LauncherImpl$$Lambda$2.run(Unknown Source:13)
06-24 10:28:23.315: W/System.err(12329):    at java.lang.Thread.run(Thread.java:764)
  • 初始化时,应用程序需要应用程序目录的位置 . 但是,由于该服务未能找到Android实现,我无法获取应用程序目录
06-24 10:28:23.526: W/System.err(12329): Loading FontFactory com.sun.javafx.font.freetype.FTFactory
06-24 10:28:23.526: W/System.err(12329): Subpixel: enabled
06-24 10:28:23.535: W/System.err(12329): Freetype2 Loaded (version 2.5.0)
06-24 10:28:23.535: W/System.err(12329): LCD support Enabled
06-24 10:28:23.859: E/a(12329): java.io.IOException: Private storage file not available
06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a.c(SourceFile:37)
06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a.access$lambda$0(Unknown Source:0)
06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a$$Lambda$2.get(Unknown Source:1)
06-24 10:28:23.859: E/a(12329):     at java.util.Optional.orElseThrow(Optional.java:286)
06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a.<clinit>(SourceFile:37)
06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a.a(SourceFile:53)
06-24 10:28:23.859: E/a(12329):     at com.gluonhq.charm.glisten.application.MobileApplication.a(SourceFile:257)
06-24 10:28:23.859: E/a(12329):     at com.gluonhq.charm.glisten.application.MobileApplication.start(SourceFile:224)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$145(LauncherImpl.java:863)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.LauncherImpl.access$lambda$8(Unknown Source:4)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source:7)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$158(PlatformImpl.java:326)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.access$lambda$6(Unknown Source:4)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl$$Lambda$7.run(Unknown Source:7)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.lambda$null$156(PlatformImpl.java:295)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.access$lambda$18(Unknown Source:2)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl$$Lambda$19.run(Unknown Source:4)
06-24 10:28:23.859: E/a(12329):     at java.security.AccessController.doPrivileged(AccessController.java:57)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.lambda$runLater$157(PlatformImpl.java:294)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.access$lambda$5(Unknown Source:4)
06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl$$Lambda$6.run(Unknown Source:7)
06-24 10:28:23.859: E/a(12329):     at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:93)
06-24 10:28:23.859: E/a(12329):     at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:52)
06-24 10:28:23.859: E/a(12329):     at java.lang.Thread.run(Thread.java:764)

那么,如何正确启动Gluon应用程序以便正确加载Android(或ios)本机服务?如果在Gluon样本页面上发布了工作后台服务样本,那么它对开发人员非常有用 .