【问题标题】:Haxe libraries "Class not found : openfl.Assets"Haxe 库“找不到类:openfl.Assets”
【发布时间】:2013-10-27 19:51:16
【问题描述】:

重大更新

今天,我想从事其他工作,但我意识到 Haxe 已经完全崩溃了。事实上,我无法编译任何库。连openfl都不行。

我尝试卸载/重新安装 Haxe,但没有成功。


我目前正在处理我的图书馆项目。一切正常,突然之间,编译任何东西都变得不可能了。

我将问题限制在最小的范围内。

所以这里是 haxe/lib 文件夹下的项目树,靠近其他所有库

beluga/current
beluga/0,1,0/haxelib.json
beluga/0,1,0/test/Test.hx

注意:我尝试将文件夹重命名为 0.1.1,但 haxe 向我抛出了以下错误

未安装库 beluga 0.1.0 版

文件Test.hx的内容

package test;

class Test {
}

现在,如果我创建一个新项目。如果我尝试编译

haxe -cp src -lib beluga -php bin -main Main

请注意这是可行的

haxe -cp src -cp ../../../lib/beluga/0,1 -php bin -main Main

并不是说找不到 beluga 库,所以应该正确安装。此外,在 FlashDevelop 中,自动完成工作正常。然而,像这样的主要:

package ;
import test.Test;

class Main {
    static function main() { }
}

我有以下错误:

src/Main.hx:2:字符 7-16:找不到类:test.Test

最后是haxelib.json的内容:

{
  "name": "beluga",
  "license": "GPL",
  "tags": ["php","neko","framework","game"],
  "description": "\r\n\t\tBeluga is a video game framework.\r\n\t",
  "contributors": ["masadow"],
  "releasenote": "Initial version, not released yet",
  "version": "0.1",
  "url": "http://myproject.org",
  "dependencies": {

  }
}

您可以在此处找到项目的 github 存储库

有什么想法吗?

【问题讨论】:

  • 您使用的是哪个版本的 Haxe,以及您使用的是哪个版本的 Haxelib?我问是因为您使用的是“haxelib.json”,它建议使用 haxelib 3,但您的版本号与 Haxelib 的语义版本不匹配……它应该是“0.1.0”。不知道这是否会有所作为
  • @JasonO'Neil haxelib 3.0.0 和 haxe 3.0.0。我以前从未遇到过任何问题,最近也没有进行任何更新。那会很奇怪吗?
  • 我只是在这里抛出想法。也许尝试haxelib selfupdate 来获取最新的haxelib。然后尝试将版本更改为0.1.0。我不确定它是否会有所作为,但值得一试。如果这不起作用,也许您可​​以将代码发布到 Github 以便我或 @back2dos 看看?
  • 我把它改成了 0.1.0 并没有改变任何东西。我还更新了 haxelib。我编辑问题以链接当前项目的存储库。谢谢

标签: haxe


【解决方案1】:

尝试haxelib path beluga 看看它是否为您提供了正确的路径(您也可以将该输出添加到您的编译器参数而不是-lib beluga 以消除haxelib 作为错误源)。

您的 haxelib.json 也有可能指定 classPath 而不是根目录。

【讨论】:

  • 我已经检查过了,它重定向到好的路径。我编辑以显示对我来说似乎不错的 json 文件的内容。我不想摆脱-lib beluga。如果有错误,我希望在将我的图书馆分享给其他人之前更正它。
  • @Masadow:我明白这一点。不过,我认为了解错误的来源很重要。如果你不使用 -lib 而是直接添加参数,你应该看看错误是来自 haxelib 还是你的代码。
  • 我编辑了我的问题。实际上,用-cp 替换-lib 是可行的。
【解决方案2】:

这个问题非常奇怪,我认为这是一个 Haxe 编译器问题。

我使用的是 Windows,我想在我的 shell 中添加一些常规的东西(比如“doskey”命令)。

所以我添加了这样的自定义例程文件

reg add "hkcu\software\microsoft\command processor" /v Autorun /t reg_sz /d c:\bin\autorun.cmd

这实际上破坏了 Haxe 编译器。

这是 autorun.cmd 的内容:

@echo off
cls
doskey /macrofile=c:\bin\cmd_alias.txt

以及别名内容:

ls=ls --color $*
ll=ls -l --color $*

只是cmd.exe的AUTORUN reg key与Haxe编译器不兼容

【讨论】:

    猜你喜欢
    • 2015-01-05
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多