Flutter 错误:PlatformException(无\u fragment\u活动,本地\u auth插件要求活动为FragmentActivity.,null)
使用本地身份验证版本0.6.0时出现此错误 它在iOS上运行良好,但在android上会出现此错误。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
已经实现了
类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
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"
....