Skip to content

NPE in DartBuild.build #169475

Description

@bkonyi

This is one of the top 10 crashers for the 3.32.0 release:

#0 DartBuild.build (package:flutter_tools/src/build_system/targets/native_assets.dart:51:27)
<asynchronous suspension>
#1 _BuildInstance._invokeInternal (package:flutter_tools/src/build_system/build_system.dart:873:9)
<asynchronous suspension>
#2 Future.wait.<anonymous closure> (dart:async/future.dart:525:21)
<asynchronous suspension>
#3 _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:811:32)
<asynchronous suspension>
#4 Future.wait.<anonymous closure> (dart:async/future.dart:525:21)
<asynchronous suspension>
#5 _BuildInstance.invokeTarget (package:flutter_tools/src/build_system/build_system.dart:811:32)
<asynchronous suspension>
#6 FlutterBuildSystem.build (package:flutter_tools/src/build_system/build_system.dart:629:16)
<asynchronous suspension>
#7 AssembleCommand.runCommand (package:flutter_tools/src/commands/assemble.dart:346:32)
<asynchronous suspension>
#8 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1551:27)
<asynchronous suspension>
#9 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)
<asynchronous suspension>
#10 CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#11 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:494:9)
<asynchronous suspension>
#12 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)
<asynchronous suspension>
#13 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:431:5)
<asynchronous suspension>
#14 run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:98:11)
<asynchronous suspension>
#15 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:154:19)
<asynchronous suspension>
#16 main (package:flutter_tools/executable.dart:102:3)
<asynchronous suspension>

It looks like we're making a bad assertion that there's a valid package name:

      final String? runPackageName =
          packageConfig.packages.where((Package p) => p.root == projectUri).firstOrNull?.name;
      final FlutterNativeAssetsBuildRunner buildRunner =
          _buildRunner ??
          FlutterNativeAssetsBuildRunnerImpl(
            environment.packageConfigPath,
            packageConfig,
            fileSystem,
            environment.logger,
            runPackageName!, // Line 51, crash
          );

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority issues at the top of the work listteam-toolOwned by Flutter Tool teamtriaged-toolTriaged by Flutter Tool team

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions