Skip to content

Improve Grade output around null safety compiler errors #69022

@mit-mit

Description

@mit-mit

Running simple Flutter apps with null safety from VSCode or Android Studio triggers a throw in the WidgetInspectorService:

Repro steps

  1. Create simple null safety app:
    flutter create nulltest
    cd nulltest
    dart migrate --apply-changes --no-web-preview
    
  2. Attempt to build APK, forgetting the experiment flag: flutter build apk

Actual result: A long build exception:

$ flutter build apk
You are building a fat APK that includes binaries for android-arm,
android-arm64, android-x64.
...
lib/main.dart:31:18: Error: This requires the null safety language feature, which is experimental.
You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
  MyHomePage({Key? key, this.title}) : super(key: key);
                 ^
lib/main.dart:42:15: Error: This requires the null safety language feature, which is experimental.
You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
  final String? title;
              ^
lib/main.dart:74:33: Error: This requires the null safety language feature, which is experimental.
You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
        title: Text(widget.title!),
                                ^
lib/main.dart:101:39: Error: This requires the null safety language feature, which is experimental.
You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
              style: Theme.of(context)!.textTheme.headline4,
                                      ^


FAILURE: Build failed with an exception.

* Where:
Script '/Users/mit/dev/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 900

* What went wrong:
Execution failed for task ':app:compileFlutterBuildRelease'.
> Process 'command '/Users/mit/dev/flutter/bin/flutter'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 24s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                      25.3s
Gradle task assembleRelease failed with exit code 1

Expected result: The error is caught, and a nicely formatted error is printed:

$ flutter build apk
You are building a fat APK that includes binaries for android-arm,
android-arm64, android-x64.
...
Build failed: There are 3 uses of the null safety language feature, which is experimental.
You can enable the experiment using the '--enable-experiment=non-nullable' command line option.

Error details:

lib/main.dart:31:18: Error: This requires the null safety language feature, which is experimental.
  MyHomePage({Key? key, this.title}) : super(key: key);
                 ^
lib/main.dart:42:15: Error: This requires the null safety language feature, which is experimental.
  final String? title;
              ^
lib/main.dart:74:33: Error: This requires the null safety language feature, which is experimental.
        title: Text(widget.title!),
                                ^
lib/main.dart:101:39: Error: This requires the null safety language feature, which is experimental.
              style: Theme.of(context)!.textTheme.headline4,
                                      ^

Version information

Flutter 1.24.0-3.0.pre • channel dev • https://github.com/flutter/flutter.git
Framework • revision 2783f8e2e1 (4 days ago) • 2020-10-22 09:36:06 -0700
Engine • revision defa8be2b1
Tools • Dart 2.11.0 (build 2.11.0-242.0.dev)
mit-macbookpro4:nulltest mit$

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: null-safetySupport for Dart's null safety featurea: qualityA truly polished experiencefound in release: 1.24Found to occur in 1.24has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versiontoolAffects the "flutter" command-line tool. See also t: labels.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy