当我想设置后台任务时,flutter -i 出错(PluginRegistry 无法转换为 FlutterEngine ...)
Posted
技术标签:
【中文标题】当我想设置后台任务时,flutter -i 出错(PluginRegistry 无法转换为 FlutterEngine ...)【英文标题】:flutter -i get error when i want to set background task (PluginRegistry cannot be converted to FlutterEngine ...) 【发布时间】:2020-07-08 07:49:40 【问题描述】:我想为此设置一个后台位置跟踪器,我使用 location_background 插件并按照background location wiki 中的步骤操作 但是当我运行构建任务时,我得到了这个错误:
/home/walid/Desktop/covid19/covid19/android/app/src/main/kotlin/com/example/covid19/Application.java:17: 错误:不兼容的类型:PluginRegistry 无法转换为 FlutterEngine GeneratedPluginRegistrant.registerWith(registry); ^ 注意:一些消息已被简化;重新编译 -Xdiags:verbose 获取完整输出 1 错误
FAILURE:构建失败并出现异常。
出了什么问题:任务执行失败 ':app:compileDebugJavaWithJavac'。编译失败;看编译器 详细信息错误输出。
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。运行 --info 或 --debug 选项以获得更多日志输出。运行 --scan 以获得完整的见解。
通过https://help.gradle.org获得更多帮助
在 4m 52s 内构建失败
Application.java 代码:
package com.example.app;
import com.lyokone.location.LocationPlugin;
import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class Application extends FlutterApplication implements PluginRegistry.PluginRegistrantCallback
@Override
public void onCreate()
super.onCreate();
LocationPlugin.setPluginRegistrant(this);
@Override
public void registerWith(PluginRegistry registry)
GeneratedPluginRegistrant.registerWith(registry);
安卓 SDK 28 Flutter 1.12.13+hotfix.8
【问题讨论】:
您是否尝试搜索错误消息? ***.com/questions/59446933/… 【参考方案1】:我遇到了完全相同的问题,只是使用以下代码修复了它(firebase_messaging:^9.1.1)
import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingBackgroundService;
import io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingPlugin;
public class Application extends FlutterApplication implements PluginRegistrantCallback
@Override
public void onCreate()
super.onCreate();
FlutterFirebaseMessagingBackgroundService.setPluginRegistrant(this);
@Override
public void registerWith(PluginRegistry registry)
FlutterFirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
【讨论】:
以上是关于当我想设置后台任务时,flutter -i 出错(PluginRegistry 无法转换为 FlutterEngine ...)的主要内容,如果未能解决你的问题,请参考以下文章
在 1.20.4 版本中添加 Flutter web-view 插件时出错