Tried to automatically register plugins with FlutterEngine on creating new android channel

Viewed 804

I tried to make a bridge (Channel) between my Flutter code and android java code, but I faced here a problem:

Attempted to register plugin (io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry$ShimRegistrarAggregate@3fa9821) but it was already registered with this FlutterEngine (io.flutter.embedding.engine.FlutterEngine@35a34e9). W/FlutterEnginePluginRegistry(23267): Attempted to register plugin (xyz.luan.audioplayers.AudioplayersPlugin@6930446) but it was already registered with this FlutterEngine (io.flutter.embedding.engine.FlutterEngine@35a34e9). W/FlutterEnginePluginRegistry(23267): Attempted to register plugin (io.flutter.plugins.connectivity.ConnectivityPlugin@c0a5607) but it was already registered with this FlutterEngine (io.flutter.embedding.engine.FlutterEngine@35a34e9). W/FlutterEnginePluginRegistry(23267): Attempted to register plugin (io.flutter.plugins.deviceinfo.DeviceInfoPlugin@706f334) but it was already registered with this FlutterEngine (io.flutter.embedding.engine.FlutterEngine@35a34e9). W/FlutterEnginePluginRegistry(23267): Attempted to register plugin (com.example.devicelocale.DevicelocalePlugin@a47955d) but it was already registered with this FlutterEngine (io.flutter.embedding.engine.FlutterEngine@35a34e9). W/FlutterEnginePluginRegistry(23267): Attempted to register plugin (com.mr.flutter.plugin.filepicker.FilePickerPlugin@2eb1ed2) but it was already registered with this FlutterEngine (io.flutter.embedding.engine.FlutterEngine@35a34e9). E/AndroidRuntime(23267): FATAL EXCEPTION: main E/AndroidRuntime(23267): Process: io.bujupah.hestia, PID: 23267 E/AndroidRuntime(23267): java.lang.RuntimeException: Unable to start activity ComponentInfo{io.bujupah.hestia/io.bujupah.taxi_app.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void io.flutter.plugin.common.BinaryMessenger.setMessageHandler(java.lang.String, io.flutter.plugin.common.BinaryMessenger$BinaryMessageHandler)' on a null object reference E/AndroidRuntime(23267): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3408) E/AndroidRuntime(23267): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3547) E/AndroidRuntime(23267): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) E/AndroidRuntime(23267): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:140) E/AndroidRuntime(23267): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96) E/AndroidRuntime(23267): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2080) E/AndroidRuntime(23267): at android.os.Handler.dispatchMessage(Handler.java:107) E/AndroidRuntime(23267): at android.os.Looper.loop(Looper.java:264) E/AndroidRuntime(23267): at android.app.ActivityThread.main(ActivityThread.java:7581) E/AndroidRuntime(23267): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(23267): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) E/AndroidRuntime(23267): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980) E/AndroidRuntime(23267): Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void io.flutter.plugin.common.BinaryMessenger.setMessageHandler(java.lang.String, io.flutter.plugin.common.BinaryMessenger$BinaryMessageHandler)' on a null object reference E/AndroidRuntime(23267): at io.flutter.plugin.common.MethodChannel.setMethodCallHandler(MethodChannel.java:119) E/AndroidRuntime(23267): at com.roughike.facebooklogin.facebooklogin.FacebookLoginPlugin.registerWith(FacebookLoginPlugin.java:43) E/AndroidRuntime(23267): at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:23) E/AndroidRuntime(23267): at io.bujupah.taxi_app.MainActivity.onCreate(MainActivity.java:29)

I've tried to solve it by adding :

   <meta-data
        android:name="flutterEmbedding"
        android:value="2" />

to my Manifiest file, and by Override Configuration Flutter Engine like :

@Override
   public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
       GeneratedPluginRegistrant.registerWith(flutterEngine);
   }

and I tried to clean my project but nothing helps

My code for now is too simple just want to print int from android code soo my MainActivity:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    boolean flutter_native_splash = true;
    int originalStatusBarColor = 0;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        originalStatusBarColor = getWindow().getStatusBarColor();
        getWindow().setStatusBarColor(0xffeaeaea);
    }
    int originalStatusBarColorFinal = originalStatusBarColor;
        GeneratedPluginRegistrant.registerWith(new FlutterEngine(this));
        new MethodChannel(getFlutterEngine().getDartExecutor(), "battery").setMethodCallHandler(
                new MethodChannel.MethodCallHandler() {
                    @Override
                    public void onMethodCall(MethodCall call, MethodChannel.Result result) {
                        if (call.method.equals("getBatteryLevel")) {
                            int battlvl = 5;
                            Log.d("size",battlvl + "");

                            result.success(battlvl + "");

                            //else result.success( "fail");
                        }
                    }
                }
        );
        // GeneratedPluginRegistrant.registerWith(this.getFlutterEngine());
    }

and my Flutter code:

static const batteryChannel = const MethodChannel('battery');
  Future<void> _getBatteryInformation() async {
    //String batteryPercentage;
    try {
      var result = await batteryChannel.invokeMethod('getBatteryLevel');
      print('java data');
      print(result);
    } on PlatformException catch (e) {
      print('java data');
      print(e);
    }
  }

and my flutter doctor result:

[√] Flutter (Channel stable, 1.22.4, on Microsoft Windows [version 10.0.18363.1256], locale fr-TN)
 
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
[√] Android Studio (version 4.0)
[√] VS Code (version 1.52.1)
[√] Connected device (1 available)

• No issues found!
0 Answers
Related