【问题标题】:Type mismatch: inferred type is PluginRegistry? but FlutterEngine was expected类型不匹配:推断类型是 PluginRegistry?但 FlutterEngine 是意料之中的
【发布时间】:2019-12-21 15:08:58
【问题描述】:

我想使用 Flutter Workmanager,我在我的 .kt 中进行了引用的配置,如下所示:

package com.example.mybackprocess

import be.tramckrijte.workmanager.WorkmanagerPlugin
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugins.GeneratedPluginRegistrant

class App : FlutterApplication(), PluginRegistry.PluginRegistrantCallback {
    override fun onCreate() {
        super.onCreate()
        WorkmanagerPlugin.setPluginRegistrantCallback(this)
    }

    override fun registerWith(reg: PluginRegistry?) {
        GeneratedPluginRegistrant.registerWith(reg)
    }
}

我已将android:name 更改为

android:name=".App"

但它给了我这个错误:

在调试模式下在 G3212 上启动 lib\main.dart... e:E:\mybackprocess\android\app\src\main\kotlin\com\example\mybackprocess\MainActivity.kt: (15, 48):类型不匹配:推断类型是 PluginRegistry?但 FlutterEngine 是预期的

FAILURE:构建失败并出现异常。 * 什么地方出了错: 任务 ':app:compileDebugKotlin' 执行失败。汇编 错误。查看日志了解更多详情

尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。运行 --info 或 --debug 选项以获得更多日志输出。运行 --scan 以获得完整的见解。 * 在https://help.gradle.org获得更多帮助

在 55 秒 Gradle 任务中构建失败 assembleDebug 失败并出现退出代码 1 退出(sigterm)

有人可以帮帮我吗?

【问题讨论】:

  • 有什么答案吗?我仍然面临这个问题

标签: flutter workmanagers


【解决方案1】:

您可以通过在 application.kt 中替换以下方法来解决此问题

override fun registerWith(registry: PluginRegistry?) {
    registry?.registrarFor("com.iotecksolutions.background_location_fetch.BackgroundLocationFetchPlugin");
}

注意:将com.iotecksolutions.background_location_fetch.BackgroundLocationFetchPlugin 替换为您的插件名称。

【讨论】:

    【解决方案2】:

    将 MainActivity.kt 替换为:

    import android.os.Bundle
    import io.flutter.app.FlutterActivity
    import io.flutter.plugins.GeneratedPluginRegistrant
    
    class MainActivity : FlutterActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            GeneratedPluginRegistrant.registerWith(this)
        }
    }
    

    【讨论】:

      【解决方案3】:

      我使用以下代码来修复错误 GeneratedPluginRegistrant.registerWith(FlutterEngine(applicationContext))

      【讨论】:

        【解决方案4】:

        在 AndroidManifest 中的结束标签之前应用这个标签,如下所示,你很高兴

        ...
         <meta-data
                android:name="flutterEmbedding"
                android:value="2" />
        </application>
        

        【讨论】:

          猜你喜欢
          • 2020-11-30
          • 2021-01-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多