验证错误:错误#1014:找不到类

8
我正在使用Flash Builder 4.5(还带有Away3D 4.0库和Flex 4.5.1 SDK)开发AS3项目。
我也添加了自己编译的SWC库到我的项目中。如果我在SWC库中导入类,它可以正常工作,但是我想让我的SWF在独立的Flash Player 11中运行。
我遵循这个教程:http://help.adobe.com/en_US/flashbuilder/using/WSe4e4b720da9dedb5-4dd43be212e8f90c222-7ffb.html
现在,我可以在Flash Player 11中运行我的应用程序,但是我在运行时收到一个错误:

VerifyError: Error #1014: 找不到XXX类

其中XXX是我的SWC库中的类。我该如何解决这个问题?

1
我解决了!当你添加Swc文件夹时,它必须合并到代码中! - Nohappy
1
你能详细说明一下你的解决方案吗? - Shlomi Schwartz
5个回答

10

在项目属性中的 Flex Build Path -> Library Path -> Framework Linkage 中,"Merged into code" 的意思是将库合并到代码中。 "Framework Linkage" 有两个选项 Merged into codeRSL,选择 Merged into code 即可解决问题。


只想补充一点,在Flash Builder 4.6中,由于某种原因,只有在添加了SWC文件夹后才能将其合并到代码中。仅添加SWC文件是无法使用合并到代码的功能的,原因不明... - Martamius
如果您无法将“Merge into code”用于您的RSL,则可以考虑重新组织库的引用顺序,更多详细信息请参见此处 - Nicolas C

5
我们在尝试使用本地扩展来构建项目时遇到了问题。
NE内的类在运行时找不到,但在Flash Builder中可以访问。
原来,默认情况下`.ANE`文件没有复制到设备上。
要解决此问题,请更改以下项目属性:
ActionScript Build Packaging -> Apple iOS -> Native Extensions -> 检查“为ANE打包”
不知道为什么默认情况下它没有被包含。取消勾选“Package”后,会收到警告,告诉您可能会引起运行时问题!

3

在我的情况下,我们有一个嵌套引用相同的库,需要在使用它的其他库之前加载。这个问题可以通过取消勾选“根据依赖自动确定库的顺序”并将该库上移至构建路径库链中来解决。Flash Builder无法根据依赖关系确定正确的顺序,因为我们有两个不同版本的同一库。错误只会发生在运行时。


1
自从我通过搜索这个错误信息着陆到这个页面,但以上解决方法都对我无效时,以下是我最终如何解决它的方法:
当您在应用程序中使用旧编译器编译旧库时,似乎特别容易出现此错误。不幸的是,有时候错误会触发,重新编译就不会;其他时候,在调试版本中它可以正常工作,但在发布版本中却失败了。
针对我的情况,解决方法是在主应用程序中包含虚拟对象,这些虚拟对象是验证错误所抱怨的类的实例:
import some.classpath.to.TheClassThatFailsOnVerify;
function YourMainApp(){ 
    var dummy:TheClassThatFailsOnVerify = new TheClassThatFailsOnVerify (); 
}

在我的情况下,这些错误仅在应用程序中未直接使用但仅在swc库代码中内部使用的类中触发,因此通过在主应用程序中添加虚拟对象,我强制Flash Builder将这些类包含在编译中。
在某些情况下,您可能需要先找到包含所需类的swc,因为它不是您使用的库swc的一部分,而是该swc本身使用的库。

1

在安装AIR 3.9并尝试升级项目后,我遇到了这个问题。

它也显示了RSL错误,然后抛出一系列的#1014错误。

在高级ActionScript设置中将textLayout.swc链接类型设置为“合并到代码”而不是默认(RSL)后,它就可以工作了。

希望这可以帮助你!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接