【问题标题】:flashdevelop halted with no explicit compile errorflashdevelop 停止,没有明确的编译错误
【发布时间】:2011-09-22 22:40:37
【问题描述】:

我们正在使用 flashdevelop 和 flash CS 3 开发基于 flash 的游戏。我们正在使用 flash CS3 发布 swc,该 swc 将作为库用于 flashdevlop。

一切似乎都很好,直到有一天我对 fla 进行了更改(更改是取消嵌入字体或将影片剪辑从一个点移动到另一个点,没什么异常),然后发布为 swc。但是当我尝试使用最新的 swc 重新编译时,它会失败并出现以下错误:

错误:空

构建因错误而停止 (fcsh)。

(fcsh)

完成(1)

Error 为 null,没有其他显式编译错误。

当我尝试使用旧的 fla 发布 swc 时,swc 有时可以与 flashdevelop 配合使用,但有时会因上述原因而失败。我对此一无所知。

谁能帮我解决这个问题?

Big 想给你们一些提示,因为这让我非常恼火。

【问题讨论】:

    标签: flash flash-cs3 flashdevelop swc


    【解决方案1】:

    解决方案是使用Java 7 (v1.7.0),更多信息请参见本论坛:http://www.flashdevelop.org/community/viewtopic.php?f=6&t=12900

    【讨论】:

    • 始终欢迎提供指向潜在解决方案的链接,但请add context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。考虑到仅仅是指向外部站点的链接Why and how are some answers deleted? 的一个可能原因。
    【解决方案2】:

    我遇到了这个错误,我为我解决了它。我今天安装了 FlashDevelop 并通过将字符串的值从“Hello Planet”更改为“Hello World”或其他任何内容来得到这些错误。

    我找到了两种方法来解决这个问题:


    1 短期解决方案: 按 Project > Project Test(失败),然后按 Project > Project Run。 它现在可以工作,但如果您进行 1 次更改,它会再次失败,您必须重复该过程。


    2 长期解决方案(从长远来看可以节省时间): 这听起来很奇怪,但出于某种原因它有效。您将永远不会再无缘无故地收到该错误。

    1. 从 Adob​​e Labs 下载 Flex SDK 和 AIR SDK。
    2. 解压缩它们并将所有 AIRSDK 文件复制并粘贴到 FLEXSDK 文件夹中。听起来很疯狂,但很重要。
    3. 将您的 FlexAIR 合并文件夹放在硬盘驱动器上的某个位置,该文​​件夹将保留很长时间。
    4. 将 FlashDevelop 指向新的 FlexAIR 合并文件夹。*
    5. 创建一个新项目,它可以工作了!

    【讨论】:

      【解决方案3】:

      我刚刚遇到这个问题,我找到了解决方法:

      如果您通过闪存导出SWC,问题可能出在编译 SWC 的方式上。

      转到发布设置,在Flash选项卡下,单击设置按钮,将出现一个新对话框。在运行时共享库​​设置上,选择默认链接作为合并到代码中并编译swc。

      Runtime Shared Library,当你添加一些特定的类、对象或组件时,会创建一个预加载器,当这种情况发生时,Flashdevelop 无法读取内容,那么他​​将不会编译你的项目并返回一个 null 错误。真是一头雾水。

      您会注意到RSL swc 比合并的代码 swc 小...在我的例子中,大约大 70%。

      --

      我注意到的一件事。如果您使用TLF Textfield,它将自动创建预加载器并为文本字段数据使用外部 SWF。您可以将所有 TLF 文本字段更改为经典文本字段并使用 RSL swc。

      【讨论】:

        【解决方案4】:

        一上午之后:

        • 重新安装所有 flex 环境,包括 flex-sdk、flashDevelop 等。
        • 还原类并逐一比较它们

        我们发现了问题 :) 在我们的例子中,这是一个来自这段代码的奇怪的重载问题:

        private function onButtonClicked(e:Event):void
        {
            e:Event = new Event(Event.CHANGE);
            dispatchEvent(e);
        }
        

        如果您忘记输入 'var' 关键字,解析器显然无法检测到现有变量的重载(第三个示例):

        // [Error: A conflict exists with definition e in namespace internal.]
        var e:Event = new Event(Event.CHANGE); 
        
        // OK
        e = new Event(Event.CHANGE); 
        
        // [Error: Classes must not be nested. public class Main extends Sprite] 
        // or 
        // [Error: null Build halted with errors (fcsh).]
        e:Event = new Event(Event.CHANGE); 
        

        【讨论】:

          【解决方案5】:

          这是 Flex 编译器的错误 - 只需重新编译即可。

          已找到一种解决方法,它不会出现在 FlashDevelop 的未来版本中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-02-16
            • 2013-01-22
            • 1970-01-01
            • 1970-01-01
            • 2019-03-10
            • 1970-01-01
            相关资源
            最近更新 更多