8
votes

Erreur: PlatformException (no_fragment_activity, le plug-in local_auth nécessite que l'activité soit un FragmentActivity., Null)

Obtenir cette erreur lors de l'utilisation de local_auth version 0.6.0 Cela fonctionne bien pour iOS mais obtenir cette erreur dans Android. Vous avez déjà implémenté la class MainActivity: FlutterFragmentActivity() mais vous obtenez toujours ce problème


2 commentaires

Ajoutez un peu de code man !!!


Reportez-vous à ce commentaire: github.com/flutter/flutter/issues/33429#issuecomment-4965989‌ 97


5 Réponses :


1
votes

changer votre activité principale pour remplacer FlutterFragmentActivity

import androidx.annotation.NonNull
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.embedding.android.FlutterFragmentActivity
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterFragmentActivity() {
   override fun configureFlutterEngine(@NonNull flutterEngine: 
     FlutterEngine) {
     GeneratedPluginRegistrant.registerWith(flutterEngine)
   }
}

si vous utilisez la version 2 de l'incorporation de flutter

import android.os.Bundle
import io.flutter.app.FlutterFragmentActivity
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterFragmentActivity() {
   override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      GeneratedPluginRegistrant.registerWith(this)
  }
}


2 commentaires

le second a fonctionné pour moi merci ... vous m'avez sauvé :)


le second a fonctionné pour moi mais sans @NotNull



2
votes

J'utilise local_auth 0.6.2 + 3

Mon MainActivity.kt

<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true"/>

J'utilisais la balise meta SplashScreenUntilFirstFrame, la supprimer de mon main / AndroidManifest.xml fonctionne parfaitement maintenant.

 package xx.xx.xxx
 import androidx.annotation.NonNull;
 import io.flutter.embedding.android.FlutterFragmentActivity
 import io.flutter.embedding.engine.FlutterEngine
 import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterFragmentActivity() {
  override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);
   }
}


0 commentaires

10
votes

Voici ce que j'ai fait pour résoudre ce problème

Changez MainActivity.kt comme ci-dessous

package com.[your.package]

import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterFragmentActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterFragmentActivity() {
    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);
    }
}

Cependant, après avoir modifié ce MainActivity.kt , j'ai également rencontré un autre problème avec le Theme.AppCompat . Consultez ceci https://gist.github.com/akifarhan/f70a2c777651f2ea61a15eb92a5939c1 pour la solution.


2 commentaires

J'ai le même problème "Vous devez utiliser un thème Theme.AppCompat (ou un descendant) avec cette activité". Changez simplement "android: thème" à cette ligne ci-dessous dans la balise d'activité du manifeste Android, travaillez pour moi: android: theme = "@ style / Theme.AppCompat.Light".


Pour moi au début, cela et d'autres réponses ont continué à se terminer par la même erreur, mais j'ai ensuite arrêté l'exécution de l'application, et dans le terminal, j'ai exécuté un flutter clean et cela a fonctionné comme un charme dans la prochaine version!



0
votes

La deuxième réponse a bien fonctionné si nous supprimons @NotNull comme

import androidx.annotation.NonNull
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.embedding.android.FlutterFragmentActivity
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterFragmentActivity() {
   override fun configureFlutterEngine( flutterEngine: 
     FlutterEngine) {
     GeneratedPluginRegistrant.registerWith(flutterEngine)
   }
}


0 commentaires

0
votes

Ajoutez la ligne suivante aux dépendances dans votre fichier build.gradle niveau de l'application:

dependencies{
    api "androidx.core:core:1.1.0-aplha03"
}


0 commentaires