我试图让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("debug", "test");
但是,此示例给了我一个nullpointer异常...我的猜测是,直到initialize()之后,我才能使用Gdx.app。因此,我尝试在initialize()之后使用setFbhandler()函数设置fbhandler,但这给了我相同的结果。

最佳答案

将对this.fbhandler.test();的调用放在create()必须具有的RPS方法中(它必须是ApplicationListener的子类,对吧?)

在Libgdx中,直到create方法开始之前,该库的初始化才完成(该方法将由Libgdx基础结构调用以指示您的应用已启动),因此您直到那时才能访问Gdx.<anything>

10-04 16:31