在最简单的Flex项目中,创建MXML Flex模块,然后使用ModuleManager加载它。没问题。创建一个ActionScript类,该类扩展Module,然后配置项目以将其编译到Module中。改为加载这个新模块。项目编译,但在运行时崩溃并出现以下错误:
“错误:无法找到语言环境'en_US'的已编译资源包'容器'。”
我相信编译器无法将所需的类定义编译到仅ActionScript模块中,而对于MXML模块则成功。我可以看到我的骨架MXML模块比我的ActionScript模块略大(66KB对45KB)。
如何解决此问题(如果这确实是问题)?
答案 0 :(得分:0)
在这种情况下,一个好的方法是对两个项目使用-keep-generated-actionscript,一个使用mxml方法,另一个使用actionscript方法。然后,您可以比较代码以查看某个项目可能缺少的内容,但包含在另一个项目中。
您是否尝试过将[ResourceBundle(“containers”)]的显式引用添加到ActionScript项目类中?出于许多正当理由,mxmlc与行为中的compc编译器不同。
答案 1 :(得分:0)
编译库swc时遇到同样的问题。我能够通过将以下部分添加到项目projectName-config.xml
来修复它 <include-libraries append="true">
<library>${flexlib}/locale/{locale}/framework_rb.swc</library>
</include-libraries>
这会强制编译器包含指定语言环境的框架资源包。
答案 2 :(得分:0)
对我来说问题是找出哪个项目 - 在我的例子中是一个库 - 以及这个库中的哪个类引起了这种行为(我需要实现我的上一次更改 - 没有来自flashbuilder的信息)。然后将以下属性应用于类:
[ResourceBundle("containers")]
public class IpChecker {
...
这就是诀窍。