背景
指纹识别,引用local_auth库,iOS正常使用,安卓机器上发现报错,内容如下:
Error: PlatformException(no_fragment_activity, local_auth plugin requires activity to be a FragmentActivity., null)
解决办法
1. 添加USE_FINGERPRINT
权限
<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
2. FlutterActivity
-> FlutterFragmentActivity
// MainActivity.kt
class MainActivity: FlutterFragmentActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
}
}
3. Theme.AppCompat 问题
如果报这样的错:If you receive this error: Exception has occurred. PlatformException (PlatformException(error, You need to use a Theme.AppCompat theme (or descendant) with this activity., null))
,可能需要这样做:
- 找到
android>app>src>main>res>values>style.xml
文件 - 把
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
替换成<style name="LaunchTheme" parent="Theme.AppCompat.Light.NoActionBar">