我正在尝试让 libgdx 与 Facebook SDK 一起工作,所以我想我需要让一些特定于平台的代码运行。
我从 Android 开始,这是我的 onCreate:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = false;
cfg.useAccelerometer = false;
cfg.useCompass = false;
initialize(new RPS(new androidFacebookHandler()), cfg);
}
RPS 的构造函数非常简单:
public RPS(facebookHandler _fbhandler) {
this.fbhandler = _fbhandler;
this.fbhandler.test();
}
fbhandler 的 test() 函数很简单。 (androidFacebookHandler实现facebookHandler)
Gdx.app.log("调试", "测试");
但是,这个示例给了我一个空指针异常...我的猜测是在 initialize() 之前我不能使用 Gdx.app。所以我尝试在 initialize() 之后使用 setFbhandler() 函数设置 fbhandler,但这给了我相同的结果。
最佳答案
调用电话this.fbhandler.test();
在create()
RPS
的方法必须有(它必须是 ApplicationListener
的子类,对吧?)
在 Libgdx 中,库的初始化直到 create
开始之前才完成。方法(将由 Libgdx 基础架构调用以指示您的应用程序已启动),因此您无法访问 Gdx.<anything>
直到那时。
关于java - 在 libgdx 中传递平台特定代码 - nullpointerexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15375444/