如何修复颤振本地身份验证的平台异常错误“auth_in_progress”?

Dee*_*ker 9 fingerprint dart flutter

我正在尝试使用 local_auth 插件在我的 flutter 应用程序中实现指纹认证。但它抛出我平台异常错误:

“平台异常(auth_in_progress,身份验证正在进行,空)”

final LocalAuthentication _localAuth = LocalAuthentication();
bool authenticated = false;
try {
  authenticated = await _localAuth.authenticateWithBiometrics(
    localizedReason: 'Scan your fingerprint to authenticate',
    useErrorDialogs: true,
    stickyAuth: false
  );
} on PlatformException
catch(e) {
  print(e);
}
return authenticated; }    
Run Code Online (Sandbox Code Playgroud)

小智 7

这发生在 Android 上。您必须修改 MainActivity 以实现 FlutterFragmentActivity 才能使用 local_auth 插件。从此更改您的代码(在我的示例中为 Kotlin):

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)
  }
}
Run Code Online (Sandbox Code Playgroud)

对此:

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)
  }
}
Run Code Online (Sandbox Code Playgroud)

您还需要将这两行添加到您的 gradle.properties 文件中。

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

这个错误从 0.5.1 版本开始就很难找到,因为插件没有抛出正确的异常,而且文档没有告诉你实现这个基类。

  • 不幸的是,不起作用。本地身份验证首次有效,但在最小化应用程序然后最大化后,会出现身份验证活动,但触摸扫描仪时应用程序崩溃 (2认同)