一、问题描述
我的目标是构建一个 Flutter 应用程序,该应用程序使用此工作管理器插件并使用此位置插件获取定期位置更新。但是当我的 Workmanager 回调触发时,我无法正确加载位置插件。我收到此错误:
MissingPluginException(No implementation found for method getLocation on channel lyokone/location)
Run Code Online (Sandbox Code Playgroud)
所以基本上,问题在于当 Workmanager 插件尝试运行 dart 代码时,它不会加载 Location 插件。
2.我研究过的其他资源
据我了解,为这些问题提供的解决方案归结为:创建一个名为CustomApplication.java的文件,它扩展FlutterApplication并注册您的插件。然后在 AndoidManifest.xml 文件中注册 CustomApplication.java 文件。
3. 到目前为止我的代码
我试图制作一个实现我需要的功能的最低限度的应用程序:
要准确了解我在每个步骤中所做的工作,请查看此处:https : //gitlab.com/tomoerlemans/workmanager_with_location/-/commits/master。(此存储库还可用于快速复制问题)。
相关代码文件如下:
main.dart
import 'package:flutter/material.dart';
import 'package:workmanager/workmanager.dart';
import 'package:location/location.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
Workmanager.initialize(callbackDispatcher, isInDebugMode: true);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget …
Run Code Online (Sandbox Code Playgroud) android dart flutter flutter-dependencies android-workmanager