Skip to content

Android crash: Unable to start activity ComponentInfo{.......MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean io.flutter.embedding.android.FlutterFragment.isFlutterEngineInjected()' on a null object reference #83595

@acoutts

Description

@acoutts

Steps to Reproduce

We have seen this crash in the wild happening to a number of users. I am unsure how to reproduce it but it has been showing up in crashlytics frequently.

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bottlepay.sandbox/com.bottlepay.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean io.flutter.embedding.android.FlutterFragment.isFlutterEngineInjected()' on a null object reference
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3431)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:223)
       at android.app.ActivityThread.main(ActivityThread.java:7660)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'boolean io.flutter.embedding.android.FlutterFragment.isFlutterEngineInjected()' on a null object reference
       at io.flutter.embedding.android.FlutterFragmentActivity.configureFlutterEngine(FlutterFragmentActivity.java:591)
       at io.flutter.embedding.android.FlutterFragment.configureFlutterEngine(FlutterFragment.java:1105)
       at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:180)
       at io.flutter.embedding.android.FlutterFragment.onAttach(FlutterFragment.java:677)
       at androidx.fragment.app.Fragment.performAttach(Fragment.java:2922)
       at androidx.fragment.app.FragmentStateManager.attach(FragmentStateManager.java:464)
       at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
       at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112)
       at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647)
       at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3126)
       at androidx.fragment.app.FragmentManager.dispatchCreate(FragmentManager.java:3059)
       at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:240)
       at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:276)
       at io.flutter.embedding.android.FlutterFragmentActivity.onCreate(FlutterFragmentActivity.java:245)
       at android.app.Activity.performCreate(Activity.java:8000)
       at android.app.Activity.performCreate(Activity.java:7984)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3404)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:223)
       at android.app.ActivityThread.main(ActivityThread.java:7660)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Affected devices:

  • Pixel 4 XL - Android 11
  • Pixel 4 - Android 11
  • Galaxy S8 - Android 8.0.0
  • Galaxy A71 - Android 11
  • Xperia XZ2 Compact - Android 10
  • Galaxy Note10+ 5G - Android 11
  • Galaxy A51 - Android 11
  • HUAWEI P30 lite - Android 10
  • Xperia 1 - Android 11
  • Galaxy S10 - Android 11
  • Pixel 2 - Android 11
  • Pixel 3a - Android 11
  • Galaxy Note20 Ultra 5G - Android 11
  • Galaxy S10+ - Android 11
  • Pixel 5 - Android 11
  • Xperia 10 II - Android 11
  • Xiaomi Mi 11 - Android 11
  • HUAWEI Y6 2019 - Android 9
  • moto g(8) power lite - Android 10
  • Pixel 4a - Android 11

and more- we have 393 crashes from this in the last 30 days.

Looking back at what flutter version would be included, it was 2.3.0-0.1.pre (dev channel).

Expected results:
Flutter app should not crash at startup.

Actual results:
App immediately crashes for some users.

Logs
[✓] Flutter (Channel dev, 2.3.0-12.1.pre, on macOS 11.3.1 20E241 darwin-arm, locale en-US)
    • Flutter version 2.3.0-12.1.pre at /Users/andrewcoutts/Projects/flutter
    • Upstream repository git@github.com:flutter/flutter.git
    • Framework revision f9c825981c (11 days ago), 2021-05-18 14:07:52 -0700
    • Engine revision 26e217e6c3
    • Dart version 2.14.0 (build 2.14.0-edge.a527411e5100a0a4f48c4009087a1b988aa784af)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/andrewcoutts/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/andrewcoutts/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5, Build version 12E262
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] VS Code (version 1.57.0-insider)
    • VS Code at /Applications/Visual Studio Code - Insiders.app/Contents
    • Flutter extension version 3.22.0

[✓] Connected device (2 available)
    • iPhone 12 Pro Max (mobile) • EFD575D6-D986-42B2-89A6-821FA97FD09D • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 91.0.4472.77

• No issues found!

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work lista: productionIssues experienced in live production appsc: crashStack traces logged to the consolec: fatal crashCrashes that terminate the processengineflutter/engine related. See also e: labels.platform-androidAndroid applications specifically

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions