pichillilorenzo / flutter_appavailability

A Flutter plugin that allows you to check if an app is installed/enabled, launch an app and get the list of installed apps.
https://pub.dartlang.org/packages/flutter_appavailability
MIT License
92 stars 89 forks source link

Crash when using with Android embedding V2 #22

Open schricb opened 3 years ago

schricb commented 3 years ago

We have upgraded our app to support Android Embedding V2. The app attempts to launch and then immediately crashes:

2021-05-07 14:53:51.474 9171-9171/org.my.app E/MethodChannel#: Parameter messenger must not be null. 2021-05-07 14:53:51.474 9171-9171/org.my.app D/AndroidRuntime: Shutting down VM 2021-05-07 14:53:51.480 9171-9171/org.my.app E/AndroidRuntime: FATAL EXCEPTION: main Process: org.my.app, PID: 9171 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 at io.flutter.plugin.common.MethodChannel.setMethodCallHandler(MethodChannel.java:119) at com.pichillilorenzo.flutter_appavailability.AppAvailability.registerWith(AppAvailability.java:37) at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:24) at org.my.app.MainActivity.configureFlutterEngine(MainActivity.kt:54) at io.flutter.embedding.android.FlutterFragment.configureFlutterEngine(FlutterFragment.java:1016) at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:180) at io.flutter.embedding.android.FlutterFragment.onAttach(FlutterFragment.java:608) at androidx.fragment.app.Fragment.performAttach(Fragment.java:2672) at androidx.fragment.app.FragmentStateManager.attach(FragmentStateManager.java:253) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1168) at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1255) at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1138) at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:136) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1987) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1945) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1847) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2621) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2569) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541) at org.my.app.MainActivity.onStart(MainActivity.kt:178) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1413) at android.app.Activity.performStart(Activity.java:7169) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3155) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1986) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:215) at android.app.ActivityThread.main(ActivityThread.java:6939) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:870)

schricb commented 3 years ago

Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 2.0.6, on macOS 11.3.1 20E241 darwin-x64, locale en-US) [!] Android toolchain - develop for Android devices (Android SDK version 30.0.3) ✗ Android license status unknown. Run flutter doctor --android-licenses to accept the SDK licenses. See https://flutter.dev/docs/get-started/install/macos#android-setup for more details. [✓] Xcode - develop for iOS and macOS [✓] Chrome - develop for the web [✓] Android Studio (version 4.2) [✓] VS Code (version 1.56.0) [✓] Connected device (3 available)

! Doctor found issues in 1 category.