包中的fileSystem.chooseEntry:chrome / app.dart生成运行时错误

时间:2013-12-19 17:55:59

标签: dart google-chrome-app

是否有人在包中成功使用过任何fileSystem调用:chrome / app.dart? (这是Google Dart的Chrome API包。)

这是我的代码:

import 'package:chrome/app.dart';

void main() {
    fileSystem.chooseEntry();
}

这是我的pubspec.yaml文件:

name: ChooseEntry
description: A sample chrome packaged application
dependencies:
  browser: any
  chrome: any
  meta: any

其他文件由Dart编辑器自动生成,并且保持不变。

我从Dartium得到的错误是:

Breaking on exception: 'package:chrome/src/common.dart': malformed type: line 72 pos 29: type 'js.Callback' is not loaded

当我编译为JS并在Dartium或Chrome中运行时,我收到此错误:

Uncaught RuntimeError: Error: Cannot resolve 'Callback'. 

所以,我的问题是,是否有人成功使用了chooseEntry API或fileSystem中的任何API,如果是这样,我所做的事情需要修复。我的猜测是我错过了一个包,但我无法确定它可能是什么。

我确实将包“js”添加到pubspec.yaml,没有任何效果。我还尝试制作所有软件包的副本,以防Dartium或Chrome没有正确处理符号链接,这也没有帮助。 (我怀疑这是问题,因为它发现fileSystem.chooseEntry的代码就好了。)

我正在使用:

Dart编辑器版本1.0.0_r30798(稳定版) Dart SDK版本1.0.0.10_r30798

1 个答案:

答案 0 :(得分:1)

chrome软件包似乎不再维护了,请考虑使用chrome_gen,而是在pubspec.yaml中将chrome替换为chrome_gen,并编辑import语句,如下所示: :

import 'package:chrome_gen/chrome_app.dart';

main() {
  fileSystem.chooseEntry();
}

这两个软件包之间的区别在于,包装器是用chrome手写的,并在chrome_gen中从Chrome的json和idl文件中自动生成。

链接:

Pub Package: chrome_gen

Mailing List: What is the difference between chrome and chrome_gen ?