在libgdx中传递特定于平台的代码 - nullpointerexception

时间:2013-03-13 01:29:03

标签: java android libgdx

我试图让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异常......我的猜测是我在初始化()之后才能使用Gdx.app。所以我尝试在initialize()之后使用setFbhandler()函数设置fbhandler,但这给了我相同的结果。

1 个答案:

答案 0 :(得分:3)

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

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