6

我想与 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)

有人可以帮帮我吗?

4

4 回答 4

6

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

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

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

于 2020-01-08T04:29:51.497 回答
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)
    }
}
于 2020-03-19T19:05:40.700 回答
1

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

于 2020-07-08T11:50:11.920 回答
0

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

...
 <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
</application>
于 2020-11-15T09:30:45.037 回答