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

时间:2019-06-13 07:07:04

标签: flutter dart

我正在尝试在导入intl后运行我的应用程序,但我无法使用。

在pubspec.yaml中,我有:

intl: ^0.15.8

经过确定,我已经通过三种方式导入了该软件包。但是似乎只使用第一个(intl.dart):

import "package:intl/intl.dart";
import "package:intl/intl_browser.dart"; //unused import
import "package:intl/intl_standalone.dart"; //unused import

我正以这种方式使用它:

DateFormat("dd-MM-yyyy").format(_chosenDate)

“ 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

我做错了什么还是应该报告的包装问题?

4 个答案:

答案 0 :(得分:0)

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

在您发布的例外中查看此行:

import "dart:html"; 

这是一个类似的问题:

https://stackoverflow.com/a/59310849/3268303

答案 1 :(得分:0)

我也收到此错误。只需运行命令flutter clean即可。 顺利运行​​后,问题得以解决。

答案 2 :(得分:0)

我通过更改导入来解决它。

argmax

import "package:intl/intl_browser.dart";

答案 3 :(得分:0)

import "package:intl/intl_browser.dart";intl 包导入,尝试使用未配置的 dart:html 包。


改用以下导入:

import 'package:intl/intl_standalone.dart';