【问题标题】:Dart 'SdkAnalysisContext' is not loadedDart 'SdkAnalysisContext' 未加载
【发布时间】:2016-06-15 01:23:04
【问题描述】:

我想将聚合物应用程序从版本“^0.16.4”更新到“1.0.0-rc.5”。我在 pubspec.yaml 中有几行:

environment:
  sdk: '>=1.12.0 <2.0.0'

dependencies:
 bwu_datagrid:
   git:
     url: 'https://github.com/bwu-dart/bwu_datagrid'
     ref: 'polymer1'

 polymer: '1.0.0-rc.5'
 polymer_interop: '^1.0.0-rc.3'
 reflectable: '>=0.3.2 <0.3.4'
 web_components: '^0.12.0'

dependency_overrides:
 code_transformers: '^0.4.0'
 reflectable:'^0.5.0'
 redstone: '0.5.21+1'
 quiver: '>=0.21.3 <0.22.0'
 analyzer:'0.27.1'
 polymer:'^1.0.0-rc.5'
 args: '>=0.12.1 <0.14.0'

但是当我运行 pub get 时,我得到了错误:

Error on line 24, column 5 of ../../../.pub-cache/hosted/10.10.3.91%588080/initialize-0.6.1+2/pubspec.yaml: Error loading transformer: 'package:code_transformers/src/dart_sdk.dart': malformed type: line 128 pos 39: type 'SdkAnalysisContext' is not loaded
  final AnalysisContext context = new SdkAnalysisContext();
                                      ^
type error.
    $include: '**/*_test.dart'
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error on line 23, column 5 of ../../../.pub-cache/hosted/10.10.3.91%588080/polymer_interop-1.0.0-rc.7/pubspec.yaml: Error loading transformer: 'package:code_transformers/src/dart_sdk.dart': malformed type: line 128 pos 39: type 'SdkAnalysisContext' is not loaded
  final AnalysisContext context = new SdkAnalysisContext();
                                      ^
type error.
    $include: test/**_test{.*,}.html
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error on line 26, column 5 of ../../../.pub-cache/hosted/10.10.3.91%588080/web_components-0.12.0+4/pubspec.yaml: Error loading transformer: 'package:code_transformers/src/dart_sdk.dart': malformed type: line 128 pos 39: type 'SdkAnalysisContext' is not loaded
  final AnalysisContext context = new SdkAnalysisContext();
                                      ^
type error.
    $include: '**/*_test.html'
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error on line 19, column 3 of ../../../.pub-cache/hosted/10.10.3.91%588080/polymer-1.0.0-rc.5/pubspec.yaml: Error loading transformer: 'package:code_transformers/src/dart_sdk.dart': malformed type: line 128 pos 39: type 'SdkAnalysisContext' is not loaded
  final AnalysisContext context = new SdkAnalysisContext();
                                      ^
type error.
- web_components

飞镖--版本 Dart VM 版本:1.13.2(2016 年 1 月 5 日星期二 06:49:57)在“linux_x64”上

发布--版本 发布 1.13.2

也许有一些关于如何解决的建议?

pubspec.yaml 中的转换器部分:

transformers:
 - polymer:
     entry_points:
       - web/index.html

 - $dart2js:
     minify: true
     commandLineOptions:
       - --trust-type-annotations
       - --trust-primitives
       - --enable-experimental-mirrors

发布服务打印:

[Info from Reflectable on web_tt_client|web/index.bootstrap.initialize.dart]:
Ignoring entry point  that does not include the class `Reflectable`.
Build completed successfully

在 dartium 控制台中:

Uncaught Unhandled exception:
Bad state: Reflectable has not been initialized. Did you forget to add the main file to the reflectable transformer's entry_points in pubspec.yaml?

spa.dart 文件:

library spa;

import 'package:polymer/polymer.dart';
import 'package:web_tt_client/routers/routers.dart';

//Components
import 'package:web_tt_client/components/page_view/page_view.dart';

main() async {
  await initPolymer();
  await prepareViewElement();
  await prepareRouters();
}

index.html 文件:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <script src='https://cdn.firebase.com/js/client/2.2.7/firebase.js'></script>
    <!-- JSON-Schema library tv4-->
    <script src="packages/web_tt_client/js/tv4/tv4.min.js"></script>

    <script src="packages/web_components/webcomponents.min.js"></script>

  </head>
  <body>

    <page-view></page-view>

    <br>
    <div id="html_log" style="white-space: nowrap;"></div>
    <script type="application/dart" src="spa.dart"></script>
    <script src="packages/browser/dart.js"></script>
  </body>
</html>

发布更新。更新版本的软件包适用于:

grinder 0.6.6+3 (0.8.0+2 available)
http_multi_server 1.3.2 (2.0.0 available)
http_parser 0.0.2+8 (2.0.0 available)
postgresql 0.2.14 (0.3.3 available)
redstone 0.5.21+1 (0.6.0+1 available)
redstone_mapper 0.1.13 (0.2.0-beta.1+1 available)
redstone_mapper_pg 0.1.1 (0.2.0-beta.2+2 available)
shelf 0.5.7 (0.6.4+3 available)
test 0.12.3+9 (0.12.7 available)

【问题讨论】:

  • 你坚持使用旧的 Dart 和 Polymer 版本有什么原因吗?当前聚合物是1.0.0-rc.15。 Dart stable 在 1.14.2 中可用
  • 现在,我只想用任何较新的聚合物运行 bwu_datagrid。
  • 尝试更新到最新版本,至少是 Polymer。只需将polymer: '1.0.0-rc.5' 更改为polymer: '^1.0.0-rc.5'。您也可以使用 bwu_datagrid: '^0.1.0-dev.0' 代替 Git 依赖项。
  • 这并不是 HtmlImport 的工作原理@HtmlImport('packages/web_tt_client/components/page_view/page_view.html') 您可以通过导入带有普通 Dart 导入的 Dart 文件来导入 Polymer 元素。只有在 Polymer 元素 Dart 文件中,您才能使用 @HtmlImport('page_view.html') 导入元素 HTML,并且不再需要元素 HTML 中的 Dart 脚本标签。
  • 有趣!没想到能解决问题。你可以回答你自己的问题。我认为这样做会很好。经过一段时间的冷静期后,您也可以接受自己的答案,然后该问题不再列为未回答。感谢您的反馈。

标签: dart polymer


【解决方案1】:

修改pubspec.yaml的dependency_overrides部分,可以解决。

dependency_overrides:
 code_transformers: '^0.4.0'
 reflectable:'^0.5.0'
 redstone: '0.5.21+1'
 quiver: '>=0.21.3 <0.22.0'
 analyzer:'0.27.1'
 polymer:'^1.0.0-rc.5'
 args: '>=0.12.1 <0.14.0'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多