【问题标题】:fileSystem.chooseEntry from package:chrome/app.dart generates runtime errorpackage:chrome/app.dart 中的 fileSystem.chooseEntry 生成运行时错误
【发布时间】:2013-12-19 17:55:59
【问题描述】:

是否有人成功使用了 package: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 (STABLE) Dart SDK 版本 1.0.0.10_r30798

【问题讨论】:

  • github.com/dart-gde/chrome.dart/blob/master/lib/src/… 似乎是有问题的行。也许这会有所帮助?
  • 我从堆栈跟踪中得到了它。我的问题是 Callback 类的定义位置......我必须包含什么包?我尝试了所有以“js”开头的包,没有效果。

标签: dart google-chrome-app


【解决方案1】:

chrome 包似乎不再维护,请考虑使用 chrome_gen 代替,在 pubspec.yaml 中将 chrome 替换为 chrome_gen 并像这样编辑导入语句:

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 ?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多