在libgdx项目中Addthis.shareItem()抛出NullPointerException

时间:2014-09-24 09:39:55

标签: libgdx addthis

我有一个libgdx项目,我想添加一个共享按钮。我希望UI元素是libgdx,而共享逻辑由AddThis库处理。

我的java代码(libgdx UI)如下:

Button fb = createButton(50, 200, 0, "facebook.png"); //  
stage.addActor(fb);

fb.addListener(new ClickListener()
{

  @Override
  public void clicked(InputEvent event, float x, float y)
  {
     super.clicked(event, x, y);
     getApplicationListener().getNativeMethods().shareFb();
  }
}

我避免在这里粘贴createButton(),getApplicationListener()和getNativeMethods(),因为我认为他们的名字可以清楚地说明他们的所作所为。 这是shareFb()方法:

public void shareFb()
{
  handler.post(new Runnable()
  { 
    @Override
    public void run()
    {
      try 
      {
        InputStream istr = context.getAssets().open("achievement1.png");
        Bitmap imageBitmap = BitmapFactory.decodeStream(istr);
        AddThis.shareItem(context, "facebook", "Achievement",  "Completed level 1", imageBitmap);
      } 
      catch (Exception e) 
      {
        System.err.println(e.getMessage());
      }      
    }  
  });
} 

但是,当我单击我的UI按钮时,shareItem()方法抛出NullPointerException,这里是logcat的相关部分:

09-23 17:29:37.912: E/AndroidRuntime(9491): Caused by: java.lang.NullPointerException
09-23 17:29:37.912: E/AndroidRuntime(9491):     at com.addthis.core.sharer.ATFacebook.share(ATFacebook.java:53)
09-23 17:29:37.912: E/AndroidRuntime(9491):     at com.addthis.ui.activities.ATShareActivity.startSharing(ATShareActivity.java:130)
09-23 17:29:37.912: E/AndroidRuntime(9491):     at com.addthis.ui.activities.ATShareActivity.onCreate(ATShareActivity.java:74)
09-23 17:29:37.912: E/AndroidRuntime(9491):     at android.app.Activity.performCreate(Activity.java:5451)
09-23 17:29:37.912: E/AndroidRuntime(9491):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
09-23 17:29:37.912: E/AndroidRuntime(9491):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)

与AddThis库捆绑在一起的AddThisDemo项目确实有效,我复制了部分代码,但这不是libgdx,所以它与我需要的东西相距甚远。任何线索?

1 个答案:

答案 0 :(得分:-1)

我只是忘了打电话

 Config.configObject().setFacebookAppId("<my fb app ID>");

编辑:在我的应用程序初始化中添加这行代码后,shareItem()方法开始按预期工作。