当我想设置后台任务时,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 ...)的主要内容,如果未能解决你的问题,请参考以下文章

尝试为 iOS 运行或构建 Flutter 项目时出错

在 Flutter 后台比较和运行代码

在 1.20.4 版本中添加 Flutter web-view 插件时出错

Flutter 推送通知仅在应用程序处于后台时有效

Androidx 在 Android Studio 中创建新的颤振项目时出错

Flutter - 生成 Flutter 应用程序 apk 时出错