Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi XE8和致命错误F2039_Delphi_Delphi Xe8 - Fatal编程技术网

Delphi XE8和致命错误F2039

Delphi XE8和致命错误F2039,delphi,delphi-xe8,Delphi,Delphi Xe8,使用XE8 update 1,Win 7 64位,并将单个组件添加到一个空文件夹中,我得到: 错误:[dcc32致命错误]F2039无法创建输出文件。\Win32\Debug\MountTest 测试将在第一次编译并正常运行,但必须关闭并重新启动XE8才能再次编译。该部件是来自Mitov软件的仪表。 组件供应商说这是一个已知的bug,没有修复。如果是这样的话,这对我来说是一个止步秀和项目结束的机会。这真的是德尔福的终点线吗 我希望有人能设法把这只兔子从帽子里拉出来。 这就是我为隔离问题所做的工作

使用XE8 update 1,Win 7 64位,并将单个组件添加到一个空文件夹中,我得到: 错误:[dcc32致命错误]F2039无法创建输出文件。\Win32\Debug\MountTest

测试将在第一次编译并正常运行,但必须关闭并重新启动XE8才能再次编译。该部件是来自Mitov软件的仪表。 组件供应商说这是一个已知的bug,没有修复。如果是这样的话,这对我来说是一个止步秀和项目结束的机会。这真的是德尔福的终点线吗

我希望有人能设法把这只兔子从帽子里拉出来。 这就是我为隔离问题所做的工作

  • 以失败的应用程序启动(不会编译2次)
  • 拆下所有使用的外部装置
  • 删除对这些单元的所有引用
  • 删除“Uses”子句中的所有引用
  • 注释代码直到编译
  • 它应该在每次点击run时编译(没问题)。现在向项目添加一个空白表单。不要对表单做任何操作,只需添加它即可。将其添加到您的uses子句中

    它应该在每次点击Run时编译。 现在打开空白表单并简单地触摸它,以便它需要重新编译。

    当您再次运行应用程序时,它将返回失败状态

    请注意,当您只需添加一个表单并“触摸”它时,就会发生这种情况。不需要代码


    这个问题不是我的代码出了什么问题-不可能。这是UI中的一个bug-必须是。

    巧合的是,我昨天刚刚测试了一些移植到XE8的组件,解决了这个问题。在我的例子中,输出文件是项目可执行文件

    在花了几个小时试图弄清楚到底发生了什么(包括重新配置我的AV软件、完全禁用它、将项目移到其他位置等),我通过禁用Castalia解决了问题。如果在没有Castalia的情况下运行IDE,则不会出现问题。如果我再次启用Castalia,它就会再次发生

    您可以在中找到禁用/启用Castalia的说明

    我删除上述内容是因为问题再次出现(禁用Castalia)。进一步的调查显示了以下几点:

  • 这个问题似乎与调试器中出现的任何类型的异常(甚至是代码中处理的异常)有关。在“调试器异常”对话框中单击“中断”或“继续”将一如既往地工作。但是,下一次编译或构建应用程序的尝试失败,出现F2039错误。在Windows资源管理器中删除可执行文件允许编译和运行一次,然后错误再次出现

  • 重新启动IDE将修复该问题,直到出现下一个调试器异常

  • taskkill或带有del的批处理文件在生成前或生成后事件中均不起作用

  • 有一个at Embarcadero,表明它在XE7、XE7.1和XE8中报告,目前是一个开放的内部票据。我找不到一种方法将上面两点中的信息添加到新的基于JIRA的质量门户中的公开信息中。也许有人可以访问并且可以这样做,他会代表我(或者至少添加到这篇文章的链接)

  • 它没有链接到特定的项目。最初的答案(如上所述)与测试应用程序有关,同时将一些组件从早期版本移植到XE8。当问题再次出现在我身上时,是在一个全新的项目中,完全不相关,没有使用任何非标准组件


  • (我以前访问过EMBT QC,并且有一些未解决的问题。这些帐户似乎尚未迁移到新的QP,我无法在我的帐户下找到任何问题。)

    在构建之前自动终止“挂断”应用程序怎么样

    找到了。 我决定从头开始开发系统,并发现了这个问题

    我将Windows 10安装在一个原始磁盘上

    已安装XE8更新1

    为XE 8安装MITIOV仪器并进行测试。所有工作发现

    已安装AsyncPro-仍在工作

    安装绝地Jcl-失败

    移除绝地Jcl-现在可以工作了

    垃圾绝地武士-一切正常


    绝地Jcl 3.48版中的某些东西导致了这个问题。我可以毫不费力地编写我使用的绝地组件的代码,但很遗憾。

    我在Win 7 Pro 64位XE8上也遇到了这个问题

    删除JCL修复了该问题。如果我是个赌徒,我会仔细看看JCL调试IDE扩展

    没有理由升级到Delphi 10.1,因为所有以前的版本都配备了旧版本的Android SDK

    现在,如何解决这个恼人的问题:

    只需找到Android SDK所在的地图。 请参阅:工具/选项/Delphi选项/SDK管理器/Android位置

    现在以管理员身份运行..\sdk\tools\android.bat 这将显示AndoidSDK管理器

    下一步是更新到最新的Android SDK和SDK工具

    如果全部完成,您不必升级到Delphi 10.1或任何“建议”的版本

    重新启动Delphi,问题:=已解决

    顺便说一句:
    要找出这里发生了什么,需要付出一些努力,因为Eclipse编译器遇到了与Delphi相同的问题。最后,所有这些都与Android SDK早期版本中的错误有关,导致adb.exe将文件句柄作为人质。

    这可能是这个神秘组件的问题。这里没有真正的细节,所以很难看到这里的任何人能够提供帮助。或者这可能是您的系统的问题。它可以是任何东西。除非你能提供更多细节,否则没有人能帮上忙。我有这个问题,解决办法是确保服务“应用程序体验”正在运行。一个明显的可能性是,应用程序实际上并没有完全终止。如果无法删除前一个可执行文件并替换为新的可执行文件,则尝试重新编译可能会失败-这可能会发生