我使用Dart编辑器0.3.7_r18717(意味着编辑器是最新的(2013年2月)
import 'dart:intl';
显示错误"找不到引用的来源"
如果我通过pub
导入包import 'package:intl/intl.dart';
然后编译成JS dart2js失败了一些奇怪的错误......
我想要的只是这样:
final String time = new DateFormat("HH:mm:ss","de").format(new DateTime.now());
根本不清楚为什么在这种情况下需要语言环境......
THX
[更新]
好的 - 我知道"奇怪的错误"什么都没有 - 所以如果我导入以下两个包,这里是输出:
import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';
String getTime() {
final String time = new DateFormat("HH:mm:ss","en_US").format(new DateTime.now());
//final String time = "20:05:00";
return time;
}
输出:
Running dart2js... Using snapshot /Developer/dart/dart-sdk/lib/_internal/compiler/implementation/dart2js.dart.snapshot Wrote /Users/mikemitterer/dart/WebSockets.SAMPLE/web/out/jrelaisui.html_bootstrap.dart.js [410.0kb written in 5.3 seconds] build.dart --machine --changed=web/jrelaisui.dart file:/Users/mikemitterer/dart/WebSockets.SAMPLE/build.dart build.dart returned error code 255 Uncaught Error: NoSuchMethodError : method not found: '_addFromInteger@0x36924d72' Receiver: null Arguments: [80] Stack Trace: #0 Object.noSuchMethod (dart:core-patch:1737:25) #1 int.+ (dart:core-patch:1324:33) #2 Parser.translateCharacter (package:analyzer_experimental/src/generated/parser.dart:4380:167) #3 Parser.computeStringValue (package:analyzer_experimental/src/generated/parser.dart:376:33) #4 Parser.parseStringLiteral (package:analyzer_experimental/src/generated/parser.dart:3451:76) #5 Parser.parsePrimaryExpression (package:analyzer_experimental/src/generated/parser.dart:3163:32) #6 Parser.parseAssignableExpression (package:analyzer_experimental/src/generated/parser.dart:837:51) #7 Parser.parsePostfixExpression (package:analyzer_experimental/src/generated/parser.dart:3061:51)
...
输出 - 清理来源:
build.dart --machine --clean file:/Users/mikemitterer/dart/HelloWebComponent/build.dart build.dart returned error code 255 'package:html5lib/src/encoding_parser.dart': Error: line 65 pos 14: class 'EncodingBytes' overrides function 'skip' of super class 'Iterable' with incompatible parameters String skip([CharPreciate skipChars]) { ^ build.dart --machine --clean file:/Users/mikemitterer/dart/todomvc/build.dart build.dart returned error code 255 'package:html5lib/src/encoding_parser.dart': Error: line 65 pos 14: class 'EncodingBytes' overrides function 'skip' of super class 'Iterable' with incompatible parameters String skip([CharPreciate skipChars]) {
...
这就是我的意思"奇怪的" : - )
答案 0 :(得分:2)
包语法是正确的,这应该有效:
import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';
main() {
print(new DateFormat.yMd().format(new DateTime.now()));
}
你在说什么“奇怪的错误”?
答案 1 :(得分:0)
import“dart:intl”;将无法导入它,因为它不是“核心”dart库之一,它必须作为包导入。您在dart2js中列出的错误看起来不像来自国际化代码,而是来自web_ui和analyzer_experimental包。如果您注释掉使用国际化并使用dart2js编译的行会发生什么?