问题
I want to work with Flutter Workmanager, I did the cited configuration in my .kt like this:
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)
    }
}
and I have changed android:name to
android:name=".App"
but it gives me this error:
Launching lib\main.dart on G3212 in debug mode... e:E:\mybackprocess\android\app\src\main\kotlin\com\example\mybackprocess\MainActivity.kt: (15, 48): Type mismatch: inferred type is PluginRegistry? but FlutterEngine was expected
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileDebugKotlin'. Compilation error. See log for more details
Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org
BUILD FAILED in 55s Gradle task assembleDebug failed with exit code 1 Exited (sigterm)
Can someone please help me?
回答1:
you can fix the issue by replacing the following method in your application.kt
override fun registerWith(registry: PluginRegistry?) {
    registry?.registrarFor("com.iotecksolutions.background_location_fetch.BackgroundLocationFetchPlugin");
}
Note: Replace com.iotecksolutions.background_location_fetch.BackgroundLocationFetchPlugin with your plugin name.
回答2:
Replace the MainActivity.kt with:
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:
I used the following code to fix the error
GeneratedPluginRegistrant.registerWith(FlutterEngine(applicationContext))
回答4:
app this tag before closing tag in AndroidManifest like below and you are good to go
...
 <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
</application>
来源:https://stackoverflow.com/questions/59437284/type-mismatch-inferred-type-is-pluginregistry-but-flutterengine-was-expected