【问题标题】:Project doesn't compile when using Intl package (DateFormat)使用 Intl 包 (DateFormat) 时项目无法编译
【发布时间】:2019-06-13 07:07:04
【问题描述】:

我在导入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

我做错了吗?还是我应该报告的包裹问题?

【问题讨论】:

  • 它是否在新的 Flutter 项目中运行?也许检查flutter doctor -v 是否有错误
  • 我相信以下未使用的导入是原因,而不是 dateformat 之一。 import "package:intl/intl_browser.dart"; //unused import 尝试删除此

标签: flutter dart


【解决方案1】:

我通过更改导入解决了它。而不是导入:

import "package:intl/intl_browser.dart";

导入以下内容:

import 'package:intl/intl_standalone.dart';

【讨论】:

    【解决方案2】:

    我也遇到了这个错误。只需运行命令flutter clean。 运行此命令后,问题解决了。

    【讨论】:

      【解决方案3】:

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

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

      import "dart:html"; 
      

      这是一个类似的问题:

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

      【讨论】:

        【解决方案4】:

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


        改用以下导入:

        import 'package:intl/intl_standalone.dart';
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-08
          • 2018-04-19
          • 2018-04-14
          • 2020-12-12
          • 1970-01-01
          • 2021-10-27
          • 2019-03-19
          相关资源
          最近更新 更多