问题在于:
我在同一个包中有三个文件:com.foobar
这些文件的目录是:
C:.. \在MyLibrary \ SRC \ COM \ foobar的\
然后在里面我有foo.as和bar.as
当我尝试运行mxmlc C:.. \ mylibrary \ src \ com \ foobar \ foo.as时出现错误:
在源路径中找到的文件必须与定义的包“com.foobar”具有相同的包结构。
对此我说:确实如此。包是com.foobar。结构是../ com / foobar / foo.as
我在网上发现了一些关于此错误的其他论坛帖子,似乎用户必须使目录与我已经拥有的包名匹配。我错过了什么?
预先感谢您提供任何帮助!
答案 0 :(得分:8)
一位同事在这方面帮了我很长时间。结果我不得不使用以下命令:
(在包含\src\com\foobar\foo.as
的目录x中)
mxmlc -compiler.source-path=.\src -static-link-runtime-shared-libraries=true .\src\com\foobar\foo.as -output .\test.swf
无论出于何种原因,我尝试的-source-path
命令都不尽如人意。
我不确定为什么它会像这样工作,但是它现在有效。希望这可以帮助那些试图编写动作脚本包的人。
答案 1 :(得分:1)
如果这是你的问题的原因我不能解决,但我发现当file.mxml引用一个类的file.as并且file.mxml错误时我得到了该错误与.mxml文件中的类命名相关的目录。
所以.mxml文件引用的一般示例
那么包含该类的.as文件应该处于相对位置
\ HOWTO \ MyFile.mxml
\ HOWTO \ MyPackage的\的Util \ MyClass.as
例如,然后调用编译器, .. \ bin \ mxmlc MyFile.mxml
我怀疑如果您尝试在上面的场景中使用source-path指令,它会抱怨已经包含了子目录。
答案 2 :(得分:0)
你在这里提到了3个不同的软件包:com.foo,com.foobar和com.plupload,听起来你有一个目录路径,所有3:\ com \ foobar。如果这些类在目录\ com \ foobar \中,那么它们都需要将包声明为com.foobar。包名称和目录路径需要匹配,否则您将得到您描述的不匹配错误。底线:包名称和目录路径实际上是同义词。
答案 3 :(得分:0)
除了拥有正确的文件夹结构外,还需要逐字匹配文件名和类的名称。这意味着如果你的类名确实是Foo,那么foo.as应该是Foo.as。
答案 4 :(得分:0)
Flash Builder快速提示。
如果您更改了air / flex或任何其他后台程序包,或者甚至添加了新的sdk并且必须重新安排一些文件才能使其工作,那么您可能不得不重新编译或拥有Flash构建器更新其文件地图集。
如果您的src文件夹或默认包充满错误,最常见的问题是Flash Builder只是移动了他们的引用。
如果您右键单击默认包文件(.as或mxml等)并选择Set As Defualt Application,那么这可能会解决您的问题。如果这不起作用,您需要转到:
Project > Properties > ActionScript Build Path
在底部它将有一个主源文件夹框。如果它是空的,那么只需输入'src',或者输入名称,你可以调用包含所有包文件(.as或其他)的源文件夹。
如果您的默认包/文件仍然显示错误(即在源路径中找到的文件必须具有与定义包相同的包结构'src')
转到Project > Properties > ActionScript Compiler
并查看您正在使用的Flex SDK版本。如果选择了“默认”按钮,请尝试选择使用特定SDK并查看其列出的内容。通常它只列出一个,它会读取像Flex 4.6.0或类似的东西。 记下该名称并在硬盘中搜索flex-sdk-description.xml 这通常在你的:
Adobe > Adobe Flash Builder 4.6(or your current version) > sdks > Flex 4.6.0
(与Flash Builder中的名称相同)。
打开该文件,您会看到flex-sdk-description.xml
右键单击或突出显示它,然后选择用记事本(窗口)打开它。
它会有很长的解构者。找到<name>Something written here</name>
这必须与您的Flash Builder Flex SDK选择名称相同(我们刚才发现的那个)。
有时,您必须更改此<name>
才能在Flash Builder中使用特定的sdk或扩展程序。这是我无法帮助您的地方,您需要确保此<name>
是Flex 4.6.0或您正在使用的任何版本的flex。如果它是 Flex 4.6.0(Air3.6)或有任何其他东西,您可能需要联系adobe或sdk /扩展创建者,看看你能做些什么。
最后检查项目中的输出部分&gt;属性&gt; ActionScript构建路径 因为默认输出是bin-debug。 如果你没有特别改变这个,那么默认情况下它将是:bin-debug
祝你好运!答案 5 :(得分:0)
请验证您的&#39; .actionScriptProperties&#39;中的所有标签。文件。如果您复制并移动了文件夹,则必须在此处进行验证。就我而言,我改变了 从: