机会:

您好,我有一种情况我根本无法弄清楚。当我运行一个非常简单的示例时,我从Dart收到这些错误:

 [13288:9212:0320/161303:ERROR:navigation_entry_screenshot_manager.cc(147)] Invalid entry with unique id: 3

 [14080:11508:0320/155717:ERROR:chrome_views_delegate.cc(185)] NOT IMPLEMENTED
 [14080:11508:0320/155717:ERROR:desktop_root_window_host_win.cc(753)] NOT IMPLEMENTED

 [14080:11508:0320/155719:ERROR:desktop_root_window_host_win.cc(753)] NOT IMPLEMENTED

 [14080:11508:0320/155747:ERROR:extension_icon_image.cc(201)] Start loading extension icon for Chromium. scale = 1

消息实际上并没有连接到我正在实现的用例。我使用调试和其他工具的尝试确实没有多大作用。我已将问题“简化”为一个基于DartPolymer示例的简单示例:
  • Define a Custom Element教程。

  • 本教程定义了一个名为<tut-stopwatch>的DartPolymer组件。在我的示例中,我将该元素复制为两个副本:<x-fred><z-fred>。除了名称和标记外, diff 命令中的所有内容都相同。

    索引 .html主页面的布局如下:

    <body>
        <x-fred> </x-fred>
        <hr/>
        <h1>Stopwatch</h1>
        <tut-stopwatch> </tut-stopwatch>
        <hr/>
        <z-fred> </z-fred>
    </body>
    

    到目前为止的调查:

    我在DOM注册调用和秒表创建者(构造函数)上设置了一个断点:

     class TuteStopwatch extends PolymerElement {
       @observable String counter='00:00';
    
       TuteStopwatch.created() : super.created();
    
         :
    }
    

    我称之为“唯一ID消息”:

    [13288:9212:0320/161303:ERROR:navigation_entry_screenshot_manager.cc(147)] Invalid entry with unique id: 3
    

    在调试期间。与执行的代码没有明确的联系,我认为这是一条异步消息,与<tut-stopwatch>组件的注册无关。

    其他两个示例(名称和标签不同):<x-fred><z-fred>可以正常工作。只是<tut-stopwatch>元素引起了问题。

    这很困难,原因有两个:
  • 我有一个独立的<tut-stopwatch>示例,工作正常。
  • 尽管文本和词法代码比较了“一致性”代码的三位,但在特定上下文中存在缺陷。这说明某些地方缺乏鲁棒性。

  • 显然,我需要在哪里寻找问题的指导。它让我想起了那些游戏:“其中之一不一样。”

    提前致谢。



    < tut-秒表>

    基于:Define a Custom Element示例:

     // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
     // for details. All rights reserved. Use of this source code is governed by a
     // BSD-style license that can be found in the LICENSE file.
    
     import 'dart:html';
     import 'dart:async';
     import 'package:polymer/polymer.dart';
    
     @CustomTag('tute-stopwatch')
     class TuteStopwatch extends PolymerElement {
       @observable String counter='00:00';
    
       TuteStopwatch.created() : super.created();
    
       Stopwatch mywatch = new Stopwatch();
       Timer mytimer;
       :
    
    
     }
    

    < x-fred >

    @CustomTag('x-fred')
    //@CustomTag('tute-stopwatch')
    class XFred extends PolymerElement {
      @observable String counter='00:00';
    
      XFred.created() : super.created();
    
      Stopwatch mywatch = new Stopwatch();
      Timer mytimer;
    
    
       Stopwatch mywatch = new Stopwatch();
       Timer mytimer;
       :
    
    
     }
    
  • 注意:每个元素都在不同的子文件夹中,并且在TuteStopwatch{...}类上的<x-fred><z-fred>
  • 之间没有 namespace 冲突


    tut_stopwatch.html

    该文件位于带有tute_stopwatch.dart的文件夹中:
  • elements / fred / tute_stopwatch.html



    <template>
      <style>
        :host {
            background-color: yellow;
            text-align: center;
            display: inline-block;
            border: solid 1px;
            padding: 10px 10px 10px 10px;
        }
      </style>
      <div>
        <div> stopwatch:
          {{counter}}
        </div>
        <div>
          <button on-click="{{start}}" id="startButton">Start</button>
          <button on-click="{{stop}}"  id="stopButton">Stop</button>
          <button on-click="{{reset}}" id="resetButton">Reset</button>
        </div>
      </div>
    </template>
    
    <script type="application/dart" src="tute_stopwatch.dart"> </script>
    


  • fred.html(< x-fred >)

    该文件位于Fred.dart所在的文件夹中:
  • elements / fred / fred.html

    <template>
      <style>
        :host {
            background-color: blue;
            text-align: center;
            display: inline-block;
            border: solid 1px;
            padding: 10px 10px 10px 10px;
        }
      </style>
      <div>
        <div> fred:
          {{counter}}
        </div>
        <div>
          <button on-click="{{start}}" id="startButton">Start</button>
          <button on-click="{{stop}}"  id="stopButton">Stop</button>
          <button on-click="{{reset}}" id="resetButton">Reset</button>
        </div>
      </div>
    </template>
    
    <script type="application/dart" src="fred.dart">  </script>
    

  • 最佳答案

    的github

    我把失败的案例放在了这里:
    -https://github.com/aplatypus/dart-experiments

    此版本无法显示tute-stopwatch元素。但是使用其他名称的克隆可以正常工作。相同的代码,只是名称不同。

    解决方法

    我可以报告我有一个解决方法。我或多或少相信它是Dart或Dart Editor的错误。

    解决方法是手动重命名:< tute-stopwatch >到:< x-stopwatch >

    然后,(相同)代码的x秒表版本正常运行。然后,我再次将自定义元素重命名为:

  • < tute-秒表>

  • 现在,< tute-stopwatch >正在运行。

    我认为它的分辨率不令人满意,因为我几乎清除了项目文件夹,并且Packages缓存了两次。我觉得有些悬念。

    另外我仍然看到奇怪的错误:
    F:\.bin\dev\dart\dev\chromium\Chrome.exe --remote-debugging-port=59082 --user-data-dir=C:\Users\william\.dartium --enable-experimental-web-platform-features --enable-html-imports --no-first-run --no-default-browser-check --no-process-singleton-dialog chrome://version/
    [18040:16896:0322/210119:ERROR:chrome_views_delegate.cc(185)] NOT IMPLEMENTED
    [18040:16896:0322/210119:ERROR:desktop_root_window_host_win.cc(753)] NOT IMPLEMENTED
    
    [18040:16896:0322/210121:ERROR:desktop_root_window_host_win.cc(753)] NOT IMPLEMENTED
    

    当我完全删除tute-stopwatch元素时,消息消失了,但是我仍然看到以下内容:
    [18040:16896:0322/210647:ERROR:navigation_entry_screenshot_manager.cc(147)] Invalid entry with unique id: 6
    

    当然,“唯一ID”的数字会在每次运行之间变化。

    我以为我会发表结果。如果您遇到类似情况,请为该元素尝试使用其他名称。这可能会帮助面临类似古怪的人。

    关于dart - 错误chrome_views_delegate.cc(185)-未实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22524474/

    10-11 09:15