无法解析*到组件实现

时间:2010-06-30 19:25:23

标签: flex

我有点坚持这个,并希望你可能有一些意见来帮助我。

我得到了“无法解决*到组件实现”。错误信息。但是,我通过谷歌读到的所有内容都没有对我的情况有所帮助。我认为我只是遗漏了一些明显的东西,但也许它更严重。

所以,为了解决这个问题,我尝试了两件事,两件事都有效,就他们带我而言。首先,我添加了一个完全相同种类的新组件,然后将错误组件的内容复制到其中。我将视图堆栈'page'替换为新组件(尽管我可以告诉它是IDENTICAL,但名称不同),并且编译器错误消失了。

我也可以通过简单地重命名原始组件来解决这个问题。让FB4为我重构。错误再次消失。但是,如果我重新重命名为原始名称,我会再次遇到编译错误。

我曾尝试多次清理该项目,但这没有用。也没有删除工作区,并重新导入项目。

我真的很想知道我在这里做错了什么。我错过了什么?

非常感谢!

5 个答案:

答案 0 :(得分:3)

尝试以下方法:

  • 右键单击您的项目 包资源管理器。
  • 在弹出窗口中选择“属性” 菜单(最后一项)。
  • 点击“Flex库构建路径”
  • 点击“课程”标签

尝试在那里找到新组件的名称。如果您这样做,请查看是否已选中。如果不是,请检查。这应该解决问题,但你可能需要清理并(有时)退出FB4并重新启动。

答案 1 :(得分:1)

通常这样的错误意味着您有两个命名相似的组件,编译器无法分辨您想要使用哪个组件。

即使在不同的包装中,您是否有其他相同的组件?或者组件中的变量与组件的名称相同吗?务必检查您的SWC和/或图书馆项目。

我假设这是一个编译时错误;那是对的吗?

答案 2 :(得分:1)

在我的情况下,通过将 Flex编译器 SDK版本更改为4.5来解决问题

您可以尝试使用不同的SDK版本,直到您的组件进行编译或直到错误更改为与主题相关的错误相关的内容。

在改变之后我得到了与当前主题不支持的属性相关的错误,因此我在设计视图属性视图中打开组件选择外观标签,将主题从SPARK更改为HALO

希望这对其他人有用

答案 3 :(得分:1)

此错误的一个原因是组件的默认xml命名空间与组件所在的包不同。

检查以确保组件定义中的默认xmlns条目与包相同。

例如:

如果 com.company.components.controls

包中有 MyControl.mxml 组件

mxml开始标记可能如下所示:

<MyControl xmlns:mx="http://www.adobe.com/2006/mxml"
           xmlns:util="com.company.components.util.*"
           xmlns:components="com.company.components.*"
           xmlns="com.company.components.controls.*">

注意默认xmlns条目如何指向同一个包。


为什么会这样:

经常发生的事情是,在通过将MXML类移动到新包后重构它,最终会得到一个有效但不正确的mxml定义。

例如说我重构并将 myControl.mxml com.company.components 包移动到 com.company.components.controls 包。 xmlns定义不会更新,因此它们将如下所示:

<controls:MyControl xmlns:mx="http://www.adobe.com/2006/mxml"
                    xmlns:util="com.company.components.util.*"
                    xmlns="com.company.components.*"
                    xmlns:controls="com.company.components.controls.*">

请注意默认命名空间仍然指向 com.company.components包,mxml标记 MyControl 必须以命名空间控件这表明了这个问题。

现在抓住了;这在技术上是有效的,并且通常会起作用。原因是它是有效的,并且组件都可以在它们定义的xmlns位置找到。

当您尝试在默认命名空间中使用预期由框架或父组件找到的组件时,会出现问题。一个很好的例子是 以及您可能正在扩展的父mxml组件的其他子组件。

要解决此问题,您应修改mxml标记和名称空间,以使默认名称空间与当前包相同。 (如第一个例子所示)

答案 4 :(得分:0)

我可能很晚才回答这个问题,但这可能是因为与您的班级相关联的套餐名称并不恰当和恰当。