6
votes

Non-concordance de type: le type inféré est PluginRegistry? mais FlutterEngine était attendu

Je veux travailler avec Flutter Workmanager, j'ai fait la configuration citée dans mon .kt comme ceci:

android:name=".App"

et j'ai changé android:name en

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)
    }
}

mais cela me donne cette erreur:

Lancement de lib \ main.dart sur G3212 en mode débogage ... e: E: \ mybackprocess \ android \ app \ src \ main \ kotlin \ com \ example \ mybackprocess \ MainActivity.kt: (15, 48): Incompatibilité de type: le type inféré est PluginRegistry? mais FlutterEngine était attendu

ÉCHEC: la construction a échoué avec une exception. * Ce qui n'a pas fonctionné: l'exécution de la tâche ': app: compileDebugKotlin' a échoué. Erreur de compilation. Voir le journal pour plus de détails

Essayez: Exécutez avec l'option --stacktrace pour obtenir la trace de la pile. Exécutez avec l'option --info ou --debug pour obtenir plus de sortie de journal. Exécutez avec --scan pour obtenir des informations complètes. * Obtenez plus d'aide sur https://help.gradle.org

BUILD FAILED in 55s Gradle task assembleDebug failed with exit code 1 Exited (sigterm)

Quelqu'un peut-il m'aider s'il vous plaît?


1 commentaires

des réponses s'il vous plaît? je suis toujours confronté à ce problème


4 Réponses :


4
votes

vous pouvez résoudre le problème en remplaçant la méthode suivante dans votre application.kt

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

Remarque: remplacez com.iotecksolutions.background_location_fetch.BackgroundLocationFetchPlugin par le nom de votre plugin.


0 commentaires

2
votes

Remplacez MainActivity.kt par:

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)
    }
}


0 commentaires

1
votes

J'ai utilisé le code suivant pour corriger l'erreur GeneratedPluginRegistrant.registerWith(FlutterEngine(applicationContext))


0 commentaires

0
votes

appliquez cette balise avant de fermer la balise dans AndroidManifest comme ci-dessous et vous êtes prêt à partir

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


0 commentaires