我正在尝试启动 LibGDX 服务器。我从这个网站复制了代码:https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/net/PingPongSocketExample.java 但我我从 Server server = Gdx.net.newServerSocket 行收到一个空指针异常...这是怎么回事?
LibGDX 静态实用程序变量以
null
开头。它们不会立即分配(也不是最终的)以支持每个平台上的不同实现。例如,您用 Net
引用的 Gdx.net
实现是 null
除非您启动实际分配此值的应用程序。
如果您希望服务器成为常规客户端应用程序的一部分,请尝试先启动应用程序,然后然后创建服务器套接字。如果你想要一个单独的服务器应用程序,你可以使用
headless
后端。您也可以手动创建Net
实例,例如:new HeadlessNet().newServerSocket(...)
或new AndroidNet().newServerSocket(...)
.
Net
实现在大多数平台上基本上都是简单的无状态工厂,所以有几个实例是可以的;即使您手动构建Net
实例并然后创建一个应用程序,它应该不会造成任何问题。