Skip to content

FlutterFragment/FlutterFragmentActivity should not reference FlutterMain #64458

@hpoul

Description

@hpoul

After updating to latest flutter dev channel (1.22.0-1.0.pre) the following NullPointerExceptions when launching android application with FlutterFragmentActivity.

Steps to Reproduce

  1. Run flutter create bug.

  2. Remove FlutterApplication as described in https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects: android/app/src/main/AndroidManifest.xml remove the line android:name="io.flutter.app.FlutterApplication"
    Screenshot 2020-08-22 at 19 34 33

  3. use FlutterFragmentActivity android/app/src/main/kotlin/com/example/example_app/MainActivity.kt: change contents to:

package com.example.example_app

import io.flutter.embedding.android.FlutterFragmentActivity

class MainActivity: FlutterFragmentActivity() {
}
  1. flutter run -d android

Expected results: App launches on android.

Actual results:

E/AndroidRuntime(31754): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.example_app/com.example.example_app.MainActivity}: java.lang.NullPointerException: Attempt to read from field 'java.lang.String io.flutter.embedding.engine.loader.FlutterApplicationInfo.flutterAssetsDir' on a null object reference
E/AndroidRuntime(31754): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
E/AndroidRuntime(31754): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
E/AndroidRuntime(31754): 	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
E/AndroidRuntime(31754): 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(31754): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(31754): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
E/AndroidRuntime(31754): 	at android.os.Handler.dispatchMessage(Handler.java:107)
E/AndroidRuntime(31754): 	at android.os.Looper.loop(Looper.java:214)
E/AndroidRuntime(31754): 	at android.app.ActivityThread.main(ActivityThread.java:7356)
E/AndroidRuntime(31754): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(31754): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/AndroidRuntime(31754): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
E/AndroidRuntime(31754): Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String io.flutter.embedding.engine.loader.FlutterApplicationInfo.flutterAssetsDir' on a null object reference
E/AndroidRuntime(31754): 	at io.flutter.embedding.engine.loader.FlutterLoader.findAppBundlePath(FlutterLoader.java:322)
E/AndroidRuntime(31754): 	at io.flutter.view.FlutterMain.findAppBundlePath(FlutterMain.java:106)
E/AndroidRuntime(31754): 	at io.flutter.embedding.android.FlutterFragmentActivity.getAppBundlePath(FlutterFragmentActivity.java:604)
E/AndroidRuntime(31754): 	at io.flutter.embedding.android.FlutterFragmentActivity.createFlutterFragment(FlutterFragmentActivity.java:443)
E/AndroidRuntime(31754): 	at io.flutter.embedding.android.FlutterFragmentActivity.ensureFlutterFragmentCreated(FlutterFragmentActivity.java:384)
E/AndroidRuntime(31754): 	at io.flutter.embedding.android.FlutterFragmentActivity.onCreate(FlutterFragmentActivity.java:248)
E/AndroidRuntime(31754): 	at android.app.Activity.performCreate(Activity.java:7802)
E/AndroidRuntime(31754): 	at android.app.Activity.performCreate(Activity.java:7791)
E/AndroidRuntime(31754): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
E/AndroidRuntime(31754): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
E/AndroidRuntime(31754): 	... 11 more
flutter analyze && flutter doctor
➜  flutter_dev analyze
Analyzing example_app...                                                
No issues found! (ran in 3.5s)
➜ flutter_dev doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, 1.22.0-1.0.pre, on Mac OS X 10.15.6 19G73, locale en-AT)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.0)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.2)
[✓] VS Code (version 1.48.0)
[✓] Connected device (5 available)

• No issues found!

Metadata

Metadata

Assignees

Labels

P0Critical issues such as a build break or regressionc: crashStack traces logged to the consolecustomer: productengineflutter/engine related. See also e: labels.platform-androidAndroid applications specificallywaiting for PR to land (fixed)A fix is in flight

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions