Reputation: 547
Getting this error while using local_auth version 0.6.0
It's working fine for iOS but getting this error in android.
Already have implemented class MainActivity: FlutterFragmentActivity()
but still getting this issue
Upvotes: 43
Views: 26798
Reputation: 57
I am using Flutter 3.3.5, Dart: 2.18.2 versions
Made no change in MainActivity.kt as such, also made no change in style.xml file.
Just added below code in AndroidManifest.xml inside the activity tag
<activity android:name="io.flutter.embedding.android.FlutterFragmentActivity" </activity>
Upvotes: 3
Reputation: 262
From the docs -https://pub.dev/documentation/local_auth/latest/
Simply use the code below in your MainActivity.kt
package [package ID here]
import io.flutter.embedding.android.FlutterFragmentActivity
class MainActivity: FlutterFragmentActivity() {
}
Uninstall your current build of the app and then rebuild again
By the way, ensure you're not making multiple calls for
auth.authenticate(...)
Upvotes: 17
Reputation: 51
I tried adding the code in MainActivity.kt. For some reason, it doesn't take the code from MainActivity.kt and only searches for MainActivity.java. So the following code in MainActivity.java fixed the issue for me.
MainActivity.java
package com.<package_name>;
import android.os.Bundle;
import io.flutter.embedding.android.FlutterFragmentActivity;
import androidx.annotation.NonNull;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin;
import io.flutter.plugins.localauth.LocalAuthPlugin;
public class MainActivity extends FlutterFragmentActivity {
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine)
{
GeneratedPluginRegistrant.registerWith(flutterEngine);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
Upvotes: 1
Reputation: 1200
This is what I did to solve this issue.
Change your MainActivity.kt
as below:
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)
}
}
However, after changing this MainActivity.kt
, I also faced some other issue with the Theme.AppCompat
. Check this out https://gist.github.com/akifarhan/f70a2c777651f2ea61a15eb92a5939c1 for the solution.
Upvotes: 46
Reputation: 1503
In my case, i forgot to change in AndroidManifest.xml file. Complete changes for reference
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"));
}
}
Then
AndroidManifest.xml
From
<application
android:label="<name>"
android:icon="@mipmap/ic_launcher">
<activity
android:name="io.flutter.embedding.android.FlutterActivity"
....
To
<application
android:label="<name>"
android:icon="@mipmap/ic_launcher">
<activity
android:name="io.flutter.embedding.android.FlutterFragmentActivity"
....
Upvotes: 1
Reputation: 473
Flutter details
Flutter version 1.22.4 at /Users/macbookpro/Desktop/development/flutter
If you are using java then change your main activity to this
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{
}
Upvotes: 3
Reputation: 134
Add the following line to the dependencies in your app level build.gradle
file:
dependencies{
api "androidx.core:core:1.1.0-aplha03"
}
Upvotes: 0
Reputation: 1973
2nd answer worked fine if we remove @NotNull like
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)
}
}
Upvotes: 0
Reputation: 1820
I am using local_auth 0.6.2+3
My MainActivity.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);
}
}
I was using SplashScreenUntilFirstFrame meta tag, Removing it from my main/AndroidManifest.xml works absolutely fine now.
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true"/>
Upvotes: 3
Reputation: 275
change your main activity to override FlutterFragmentActivity
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)
}
}
if you are using flutter embedding version 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)
}
}
Upvotes: 4