flutter_background_geolocation 在发布模式下不起作用

She*_*ani 7 android geolocation flutter

我设置了所有内容,没有跳过这个插件的任何一点。它可以在所有调试模式下工作(前台、后台、Kill stat)。

错误日志:在发布模式下终止应用程序时

E/FlutterGeolocator(24131): Geolocator position updates stopped
D/FlutterGeolocator(24131): Stopping location service.
D/FlutterLocationService(24131): Unbinding from location service.
D/FlutterLocationService(24131): Destroying service.
E/flutter (24131): [ERROR:flutter/shell/common/shell.cc(93)] Dart Error: Dart_LookupLibrary: library 'package:flutter_background_geolocation/flutter_background_geolocation.dart' not found.
E/flutter (24131): [ERROR:flutter/runtime/dart_isolate.cc(668)] Could not resolve main entrypoint function.
E/flutter (24131): [ERROR:flutter/runtime/dart_isolate.cc(167)] Could not run the run main Dart entrypoint.
E/flutter (24131): [ERROR:flutter/runtime/runtime_controller.cc(385)] Could not create root isolate.
E/flutter (24131): [ERROR:flutter/shell/common/shell.cc(604)] Could not launch engine with configuration.
Run Code Online (Sandbox Code Playgroud)

Android清单中的权限

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
 <uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
Run Code Online (Sandbox Code Playgroud)

小智 11

这似乎是 Flutter 3.3 中的一个问题,它破坏了隔离中运行的插件。

您需要使用 @pragma('vm:entry-point') 注释在隔离中运行的顶级或静态函数

像这样

@pragma('vm:entry-point')
void locationCallback() {
  .......
  });
Run Code Online (Sandbox Code Playgroud)

}