我有这个pubspec.yaml
name: Dart Pages
description: The Dart platform.
dependencies:
web_components: any
mongo_dart: any
然后我运行工具> Pub Install,操作成功完成。
运行应用程序时出现以下错误:
dart --enable-checked-mode web\page.dart
Unable to open file: C:/Users/Samer/Documents/GitHub/dart/web/packages/mongo_dart/mongo_dart.dart'file:///C:/Users/Samer/Documents/GitHub/dart/web/page.dart': Error: line 1 pos 1: library handler failed
#import("package:mongo_dart/mongo_dart.dart");
我正在使用Windows 7 64位&最新Dart编辑器版本0.2.1_r14167
问题似乎不仅仅是mongo_dart,而是所有其他库,编辑器正在寻找/ dart / web / packages中的包的错误路径,而我在/dart/packages文件夹中看到了/ p>
感谢您的帮助和时间。
答案 0 :(得分:1)
自创建“web”目录以来,您是否运行pub install
?如果没有,试试吧。您需要在包含Dart入口点的目录中有一个“packages”目录,以便“package:”导入能够正确解析。
Pub会为你创建这些目录,但它需要知道这样做。如果您向程序包添加新目录,则需要再次运行pub install
,以便向其添加“packages”目录。
答案 1 :(得分:1)
我遇到类似TeamCity的问题。在我的开发机器上,我可以反复执行pub get
和pub build
并且它工作得很好,但这只在我第一次使用TeamCity构建解决方案时才有效。
经过大量的讨论之后,我终于发现,主要是通过反复试验,问题是由TeamCity在构建解决方案之前清理文件夹引起的。
我找不到pub
如何工作的任何合理文档,我不知道为什么这只会在第一次有效,但我的试验和错误发现每次执行pub cache repair
在pub get
之前构建,最后pub build
可重复工作,我的TeamCity项目现在每次都成功构建。
答案 2 :(得分:0)
我在这里有类似的东西,使用js-interop包。我将':'改为'/'并且有效。
原始声明:
import("package:mongo_dart/mongo_dart.dart");
修改声明:
#import("package/mongo_dart/mongo_dart.dart");
你也可以尝试这个(它对我有用):
import 'packages/mongo_dart/mongo_dart.dart';
答案 3 :(得分:0)
您可能需要在导入mongo_dart.dart的位置添加其他库,然后在main中导入库。这是我知道的一个奇怪的解决方案,但当我试图在Dart中运行Google Maps时,它对我有用。
更多信息:https://groups.google.com/a/dartlang.org/d/msg/misc/ORXJmmmH3fA/WIKyBik1e7sJ
答案 4 :(得分:0)
我在尝试导入unittest时遇到了类似的问题。我使用dart编辑器插件在Windows 7 64位中运行Eclipse 4.2。
删除c:\ USERS \< 用户> \ AppData \ Roaming \下的'pub'文件夹。
此darlang google论坛上的Samer Ali获得此奖励,请参阅here。