mSimple Facebook.login(mYLogin Listener);空指针异常

时间:2014-01-16 22:02:57

标签: java android facebook

大家好我有这个代码的麻烦,我设置了一切,但是当我在模拟器或我的设备中调试应用程序时,我收到了这个错误。

我需要一个登录Facebook并发布Feed的活动正如您所见,我正在使用SimpleFacebook作为库,代码使用正确的按钮方式。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_story_post);
    initUI();
    // test local language
            Utils.updateLanguage(getApplicationContext(), "es");
            Utils.printHashKey(getApplicationContext());
            SimpleFacebook.setConfiguration(configuration);

            execute();

            }

public void execute() {

// Login listener
final  OnLoginListener mOnLoginListener = new OnLoginListener()
{

    @Override
    public void onFail(String reason)
    {
        mTextStatus.setText(reason);
        Log.w(TAG, "Failed to login");
    }

    @Override
    public void onException(Throwable throwable)
    {
        mTextStatus.setText("Exception: " + throwable.getMessage());
        Log.e(TAG, "Bad thing happened", throwable);
    }

    @Override
    public void onThinking()
    {
        // show progress bar or something to the user while login is happening
        mTextStatus.setText("Thinking...");
    }

    @Override
    public void onLogin()
    {
        // change the state of the button or do whatever you want
        mTextStatus.setText("Logged in");
        loggedInUIState();
        toast("You are logged in");
    }

    @Override
    public void onNotAcceptingPermissions()
    {
        toast("You didn't accept read permissions");
    }

};

// listener for publishing action
 final OnPublishListener onPublishListener = new SimpleFacebook.OnPublishListener()
{

    @Override
    public void onFail(String reason)
    {
        hideDialog();
        // insure that you are logged in before publishing
        Log.w(TAG, "Failed to publish");
    }

    @Override
    public void onException(Throwable throwable)
    {
        hideDialog();
        Log.e(TAG, "Bad thing happened", throwable);
    }

    @Override
    public void onThinking()
    {
        // show progress bar or something to the user while publishing
        showDialog();
    }

    @Override
    public void onComplete(String postId)
    {
        hideDialog();
        toast("Published successfully. The new post id = " + postId);
    }
};

// feed builder
final  Feed feed = new Feed.Builder()
    .setMessage("Probando 123 from android")
    .setName("Facebook SDK")
    .setCaption("Mi opinión.")
    .setDescription("Buscate")
    .setPicture("http://mydomain.com/a.jpg")
    .setLink("http://google.es")
    .build();

     mSimpleFacebook.login(mOnLoginListener);
     mSimpleFacebook.publish(feed, onPublishListener);
}

记录猫

01-16 23:01:14.310: E/AndroidRuntime(10601): FATAL EXCEPTION: main
01-16 23:01:14.310: E/AndroidRuntime(10601): java.lang.RuntimeException: Unable to start activity ComponentInfo{sample.faebook.testing/sample.faebook.testing.StoryPost}: java.lang.NullPointerException
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.app.ActivityThread.access$600(ActivityThread.java:128)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.os.Looper.loop(Looper.java:137)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.app.ActivityThread.main(ActivityThread.java:4517)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at java.lang.reflect.Method.invokeNative(Native Method)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at java.lang.reflect.Method.invoke(Method.java:511)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at dalvik.system.NativeStart.main(Native Method)
01-16 23:01:14.310: E/AndroidRuntime(10601): Caused by: java.lang.NullPointerException
01-16 23:01:14.310: E/AndroidRuntime(10601):    at sample.faebook.testing.StoryPost.execute(StoryPost.java:170)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at sample.faebook.testing.StoryPost.onCreate(StoryPost.java:64)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.app.Activity.performCreate(Activity.java:4533)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
01-16 23:01:14.310: E/AndroidRuntime(10601):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
01-16 23:01:14.310: E/AndroidRuntime(10601):    ... 11 more

这是第64行 - > mSimpleFacebook.login(mOnLoginListener);

1 个答案:

答案 0 :(得分:2)

mSimpleFacebooknull,因为您尝试在onCreate()中使用它,但是您正在onResume()初始化它。