5

这是问题:

我在同一个包中有三个文件: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

我在网上发现了一些关于这个错误的其他论坛帖子,看起来用户必须使目录与我已经拥有的包名称匹配。我错过了什么?

提前感谢您提供的任何帮助!

4

6 回答 6

9

一位同事在这方面帮助了我很长一段时间。原来我不得不使用以下命令:

(在存放 x 的目录中\src\com\foobar\foo.as

mxmlc -compiler.source-path=.\src -static-link-runtime-shared-libraries=true .\src\com\foobar\foo.as -output .\test.swf

无论出于何种原因,-source-path我尝试的命令都不令人满意。

我不完全确定它为什么会这样工作,但是现在可以了。希望这可以帮助其他试图编译 actionscript 包的人。

于 2010-10-07T20:33:54.000 回答
1

如果这是您的问题的原因,我不会费心去解决,但是我发现当 file.mxml 引用一个类的 file.as 并且 file.mxml 位于错误的相关目录时,我收到了该错误到它在 .mxml 文件中的类命名。

所以如果 .mxml 文件引用的一般示例

  • 导入 MyPackage.Util.MyClass;

那么包含该类的 .as 文件应该处于相对位置

  • \howto\MyFile.mxml

  • \howto\MyPackage\Util\MyClass.as

例如,您然后调用编译器 ..\bin\mxmlc MyFile.mxml

我怀疑如果您尝试在上面的场景中使用源路径指令,它会抱怨子目录已经包含在内。

于 2011-12-01T19:54:26.477 回答
0

Flash Builder 快速提示。

如果您更改了 air/flex 或任何其他后台软件包,甚至添加了新的 sdk 并且必须重新安排一些文件以使其工作,那么您可能必须重新编译或让 flash builder 更新其文件地图集。

如果您的 src 文件夹或默认包充满错误,最常见的问题是 Flash Builder 只是移动了它们的引用。

如果您右键单击默认包文件(.as 或 mxml 等)并选择设置为默认应用程序,那么这可能会解决您的问题。如果这不起作用,您需要转到:

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(与闪存生成器中的名称相同)。

打开该文件,您将看到flex-sdk-description.xml 右键单击或突出显示它并选择使用记事本(Windows)打开它。它将有一长串的描述符。发现<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/扩展创建者,看看您能做什么。

最后检查 Project > Properties > ActionScript Build Path 中的 Output 部分,因为默认输出是 bin-debug。如果您事先没有专门更改它,那么默认情况下它将是:bin-debug

祝你好运!

于 2013-02-21T21:14:41.130 回答
0

除了具有正确的文件夹结构外,您还需要逐字匹配文件名和类的名称。这意味着 foo.as 应该是 Foo.as 就好像你的类名确实是 Foo。

于 2011-06-02T23:46:11.893 回答
0

您在这里提到了 3 个不同的包:com.foo、com.foobar 和 com.plupload,听起来您对所有 3 个包都有一个目录路径:\com\foobar。如果这些类在目录 \com\foobar\ 中,那么它们都需要将包声明为 com.foobar。包名和目录路径需要匹配,否则你会得到你描述的不匹配错误。底线:包名称和目录路径实际上是同义词。

于 2010-10-07T19:05:22.307 回答
0

请验证您的“.actionScriptProperties”文件中的所有标签。如果您复制并移动了该文件夹,则必须在此处对其进行验证。就我而言,我改变了:

于 2015-05-14T12:21:22.020 回答