Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter build cannot find 'dart:html'

Tags:

flutter

dart

I've tried running flutter clean. I've tried changing between the beta and stable channel. The compiler seems to be trying to add things for browser support but I am compiling an APK. Flutter Web support is disabled. I had no trouble compiling this before. It looks like the source of the problem might be the sentry package which I am using.

How can I get the app to compile again?

This is the output of build apk

$ flutter build apk
You are building a fat APK that includes binaries for android-arm, android-arm64, android-x64.
If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
    To generate an app bundle, run:
        flutter build appbundle --target-platform android-arm,android-arm64,android-x64
        Learn more on: https://developer.android.com/guide/app-bundle
    To split the APKs per ABI, run:
        flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
        Learn more on:  https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split

Compiler message:                                                       
../../flutter/.pub-cache/hosted/pub.dartlang.org/sentry-3.0.1/lib/src/browser.dart:7:8: Error: Not found: 'dart:html'
import 'dart:html' hide Event, Client;                                  
       ^                                                                
../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart:6:8: Error: Not found: 'dart:html'
import 'dart:html';                                                     
       ^                                                                
../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart:34:18: Error: 'HttpRequest' isn't a type.
  final _xhrs = <HttpRequest>{};                                        
                 ^^^^^^^^^^^                                            
../../flutter/.pub-cache/hosted/pub.dartlang.org/sentry-3.0.1/lib/src/browser.dart:51:19: Error: Getter not found: 'window'.
    origin ??= '${window.location.origin}/';                            
                  ^^^^^^                                                
../../flutter/packages/flutter/lib/src/painting/_network_image_web.dart:88:12: Error: Method not found: 'webOnlyInstantiateImageCodecFromUrl'.
    return ui.webOnlyInstantiateImageCodecFromUrl(resolved, // ignore: undefined_function
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                          
../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart:58:34: Error: 'Blob' isn't a type.
      var blob = xhr.response as Blob ?? Blob([]);                      
                                 ^^^^                                   
../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart:46:15: Error: The method 'HttpRequest' isn't defined for the class 'BrowserClient'.
 - 'BrowserClient' is from 'package:http/src/browser_client.dart' ('../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart').
Try correcting the name to the name of an existing method, or defining a method named 'HttpRequest'.
    var xhr = HttpRequest();                                            
              ^^^^^^^^^^^                                               
../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart:58:42: Error: The method 'Blob' isn't defined for the class 'BrowserClient'.
 - 'BrowserClient' is from 'package:http/src/browser_client.dart' ('../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart').
Try correcting the name to the name of an existing method, or defining a method named 'Blob'.
      var blob = xhr.response as Blob ?? Blob([]);                      
                                         ^^^^                           
../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart:59:20: Error: The method 'FileReader' isn't defined for the class 'BrowserClient'.
 - 'BrowserClient' is from 'package:http/src/browser_client.dart' ('../../flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.1/lib/src/browser_client.dart').
Try correcting the name to the name of an existing method, or defining a method named 'FileReader'.
      var reader = FileReader();                                        
                   ^^^^^^^^^^                                           
Unhandled exception:                                                    
FileSystemException(uri=org-dartlang-untranslatable-uri:dart%3Ahtml; message=StandardFileSystem only supports file:* and data:* URIs)
#0      StandardFileSystem.entityForUri (package:front_end/src/api_prototype/standard_file_system.dart:33:7)
#1      asFileUri (package:vm/kernel_front_end.dart:567:37)             
#2      writeDepfile (package:vm/kernel_front_end.dart:760:21)          
<asynchronous suspension>                                               
#3      FrontendCompiler.compile (package:frontend_server/frontend_server.dart:536:15)
<asynchronous suspension>                                               
#4      _FlutterFrontendCompiler.compile (package:flutter_frontend_server/server.dart:40:22)
#5      starter (package:flutter_frontend_server/server.dart:178:27)    
#6      main (file:///b/s/w/ir/cache/builder/src/flutter/flutter_frontend_server/bin/starter.dart:8:30)
#7      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#8      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

Target kernel_snapshot failed: Exception: Errors during snapshot creation: null
build failed.                                                           

FAILURE: Build failed with an exception.                                

* Where:                                                                
Script '/home/werner/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 882

* What went wrong:                                                      
Execution failed for task ':app:compileFlutterBuildRelease'.            
> Process 'command '/home/werner/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 28s                                                     
Running Gradle task 'assembleRelease'...                                
Running Gradle task 'assembleRelease'... Done                      29.4s
Gradle task assembleRelease failed with exit code 1
like image 784
Cobolt Avatar asked Apr 28 '20 16:04

Cobolt


Video Answer


2 Answers

I found my mistake eventually. My mistake was explicitly importing

import 'package:sentry/browser_client.dart';

instead of

import 'package:sentry/sentry.dart';
like image 188
Cobolt Avatar answered Oct 19 '22 13:10

Cobolt


If you needed to use both in this or other cases, you can import it like this:

import 'package:sentry/sentry.dart' if (dart.library.html) 'package:sentry/browser_client.dart' as sentry;
like image 22
Karim Avatar answered Oct 19 '22 12:10

Karim