小编Mar*_*her的帖子

“试图向 Flutter 发送平台消息,但 FlutterJNI 与原生 C++ 分离。” 启动后台服务并关闭应用程序后

伙计们!我正在尝试构建一个应用程序,它使用一些包作为位置(https://pub.dev/packages/location)和指南针(https://pub.dev/packages/flutter_compass)并保持后台服务跟踪用户位置. 一切正常,直到我启动服务来跟踪位置。

随着服务处于活动状态,整个应用程序永远不会停止,例如,当我在没有服务的情况下关闭应用程序时,指南针也会停止,但是随着服务的运行,指南针也会继续运行。实际上它返回一个错误“试图向 Flutter 发送平台消息,但 FlutterJNI 与本机 C++ 分离。无法发送。通道:hemanthraj/flutter_compass”。位置也会发生同样的事情:“试图向 Flutter 发送平台消息,但 FlutterJNI 与本机 C++ 分离。无法发送。通道:lyokone/locationstream”。在此之后,即使我再次打开该项目,它也不再起作用......我正在尝试使服务完全独立于项目的其余部分。

我将向您展示服务实现(Android)

public class CompassApplication extends FlutterApplication {

    @Override
    public void onCreate() {
        super.onCreate();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel("messages", "Messages", NotificationManager.IMPORTANCE_LOW);
            NotificationManager manager = getSystemService(NotificationManager.class);
            if (manager != null) {
                manager.createNotificationChannel(channel);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
class MainActivity: FlutterActivity() {

    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine)

        val intent = Intent(this, LocationService::class.java)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            startForegroundService(intent) …
Run Code Online (Sandbox Code Playgroud)

service android background dart flutter

11
推荐指数
1
解决办法
4542
查看次数

标签 统计

android ×1

background ×1

dart ×1

flutter ×1

service ×1