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!