使用 Intl 包(DateFormat)时项目无法编译

Her*_*inn 7 dart flutter

我试图在导入intl后运行我的应用程序,但它不起作用。

pubspec.yaml我的文件中有:

intl: ^0.15.8
Run Code Online (Sandbox Code Playgroud)

经过一番研究后,我以三种方式导入了该包,只是为了确定一下。但似乎只使用了第一个(intl.dart):

import "package:intl/intl.dart";
import "package:intl/intl_browser.dart"; //unused import
import "package:intl/intl_standalone.dart"; //unused import
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

DateFormat("dd-MM-yyyy").format(_chosenDate)
Run Code Online (Sandbox Code Playgroud)

我之后的错误flutter run是:

Resolving dependencies...                                           2,3s
                                                                        
Compiler message:                                                       
file:///Users/mydomus/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/intl-0.15.8/lib/intl_browser.dart:25:48: Error: Getter not found: 'window'.
  Intl.systemLocale = Intl.canonicalizedLocale(window.navigator.language);
                                               ^^^^^^                   
file:///Users/mydomus/Documents/flutter/.pub-cache/hosted/pub.dartlang.org/intl-0.15.8/lib/intl_browser.dart:13:8: Error: Not found: 'dart:html'
import "dart:html";                                                     
       ^                                                                
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:589:37)             
<asynchronous suspension>                                               
#2      FrontendCompiler._outputDependenciesDelta (package:vm/frontend_server.dart:391:39)
<asynchronous suspension>                                               
#3      FrontendCompiler.compile (package:vm/frontend_server.dart:365:13)
<asynchronous suspension>                                               
#4      _FlutterFrontendCompiler.compile (package:frontend_server/server.dart:31:22)
<asynchronous suspension>                                               
#5      starter (package:frontend_server/server.dart:133:27)            
<asynchronous suspension>                                               
#6      main (file:///b/s/w/ir/k/src/flutter/frontend_server/bin/starter.dart:8:30)
<asynchronous suspension>                                               
#7      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:298:32)
#8      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:171:12)
                                                                        
Compiler failed on /Users/mydomus/Desktop/meriem/flutter/mydomus_edl/lib/main.dart

Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?或者是我应该报告的包裹问题?

daz*_*000 11

这是因为您导入了“dart:html”,但它在您部署到的平台上不存在。

在您发布的异常中查看这一行:

import "dart:html"; 
Run Code Online (Sandbox Code Playgroud)

这是一个类似的问题:

/sf/answers/4151759461/


Jua*_*cki 2

我通过更改导入解决了这个问题。而不是导入:

import "package:intl/intl_browser.dart";
Run Code Online (Sandbox Code Playgroud)

导入以下内容:

import 'package:intl/intl_standalone.dart';
Run Code Online (Sandbox Code Playgroud)