Flutter 错误:PlatformException(无\u fragment\u活动,本地\u auth插件要求活动为FragmentActivity.,null)

Flutter 错误:PlatformException(无\u fragment\u活动,本地\u auth插件要求活动为FragmentActivity.,null),flutter,flutter-dependencies,Flutter,Flutter Dependencies,使用本地身份验证版本0.6.0时出现此错误 它在iOS上运行良好,但在android上会出现此错误。 已经实现了类MainActivity:flatterFragmentActivity(),但仍然存在此问题将您的主活动更改为覆盖flatterFragmentActivity import android.os.Bundle import io.flutter.app.FlutterFragmentActivity import io.flutter.plugins.GeneratedPlugi

使用本地身份验证版本0.6.0时出现此错误 它在iOS上运行良好,但在android上会出现此错误。
已经实现了
类MainActivity:flatterFragmentActivity()
,但仍然存在此问题

将您的主活动更改为覆盖flatterFragmentActivity

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

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

我正在使用local_auth 0.6.2+3

我的主要活动.kt

 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);
   }
}
我使用的是SplashScreenUntilFirstFrame元标记,将其从main/AndroidManifest.xml中删除后,现在就完全可以正常工作了

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

这就是我为解决这个问题所做的

更改
MainActivity.kt
如下

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

然而,在更改了这个
MainActivity.kt
之后,我还遇到了
主题.AppCompat
的一些其他问题。查看此解决方案。

如果我们删除@NotNulllike,则第二个答案很好

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

将以下行添加到应用程序级别
build.gradle
文件中的依赖项:

dependencies{
    api "androidx.core:core:1.1.0-aplha03"
}
颤振细节

颤振版本1.22.4 at/Users/macbookpro/Desktop/development/颤振

  • 框架修订版1aafb3a8b9(4周前),2020-11-13 09:59:28-0800
  • 发动机版本2c956a31c0
  • Dart版本2.10.4
  • 本地授权:^0.6.3+4
如果您正在使用java,那么将您的主要活动更改为

import androidx.annotation.NonNull;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.embedding.android.FlutterFragmentActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.embedding.android.FlutterActivity;
public class MainActivity extends FlutterFragmentActivity{
}

在我的例子中,我忘记在AndroidManifest.xml文件中进行更改。 完成更改以供参考

MainActivity.java

import android.os.Bundle;
import io.flutter.app.FlutterFragmentActivity;
import io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin;
import io.flutter.plugins.localauth.LocalAuthPlugin;

public class MainActivity extends FlutterFragmentActivity  {
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FlutterAndroidLifecyclePlugin.registerWith(
                registrarFor(
                        "io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin"));
        LocalAuthPlugin.registerWith(registrarFor("io.flutter.plugins.localauth.LocalAuthPlugin"));
    }
}
然后

AndroidManifest.xml



添加一些代码人!!!请参阅此评论:第二条对我有用,谢谢你……你救了我:)我有同样的问题“你需要在这个活动中使用一个Theme.AppCompat主题(或后代)”。简单地将“android:theme”更改为android清单中活动标签下面的这一行,为我工作:android:theme=“@style/theme.AppCompat.Light”。对我来说,起初这个答案和其他许多答案都以相同的错误结尾,但后来我停止了应用程序运行,在终端上执行了flift clean,它在下一次构建中发挥了魅力!
  <application
        android:label="<name>"
        android:icon="@mipmap/ic_launcher">
        <activity
           android:name="io.flutter.embedding.android.FlutterActivity"
           ....
  <application
        android:label="<name>"
        android:icon="@mipmap/ic_launcher">
        <activity
           android:name="io.flutter.embedding.android.FlutterFragmentActivity"
           ....