0

こんにちは、Facebook を Android アプリケーションに統合しました。以下はコードです:

public class Example extends Activity {


public static final String APP_ID = "My App ID";//i have placed my app id here

private LoginButton mLoginButton;
private TextView mText;
private Button mPostButton;


private Facebook mFacebook;
private AsyncFacebookRunner mAsyncRunner;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (APP_ID == null) {
        Util.showAlert(this, "Warning", "Facebook Applicaton ID must be " +
                "specified before running this example: see Example.java");
    }

    setContentView(R.layout.main);
    mLoginButton = (LoginButton) findViewById(R.id.login);
    mText = (TextView) Example.this.findViewById(R.id.txt);

    mPostButton = (Button) findViewById(R.id.postButton);

    **mFacebook = new Facebook(APP_ID);**//this is where i get a Null Pointer Exception
    mAsyncRunner = new AsyncFacebookRunner(mFacebook);

    SessionStore.restore(mFacebook, this);
    SessionEvents.addAuthListener(new SampleAuthListener());
    SessionEvents.addLogoutListener(new SampleLogoutListener());
    mLoginButton.init(this, mFacebook);



    mPostButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mFacebook.dialog(Example.this, "feed",
                    new SampleDialogListener());
        }
    });
    mPostButton.setVisibility(mFacebook.isSessionValid() ?
            View.VISIBLE :
            View.INVISIBLE);
 } 

アプリを実行すると、次の行でヌル ポインター例外が発生します:
mfacebook = new facebook(APP_ID);

これは私の Logcat です

06-27 15:01:29.424: エラー/AndroidRuntime(646): 致命的な例外: メイン 06-27 15:01:29.424: エラー/AndroidRuntime(646): java.lang.RuntimeException: アクティビティ ComponentInfo{com を開始できません。 sardarjijokes.ncpl/com.sardarjijokes.ncpl.Example}: java.lang.NullPointerException 06-27 15:01:29.424: ERROR/AndroidRuntime(646): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) で 06 -27 15:01:29.424: エラー/AndroidRuntime(646): android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) で 06-27 15:01:29.424: エラー/AndroidRuntime(646): android.app で.ActivityThread.access$2300(ActivityThread.java:125) 06-27 15:01:29.424: エラー/AndroidRuntime(646): android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 06-27 15: 01:29.424: エラー/AndroidRuntime(646): android.os.Handler で。dispatchMessage(Handler.java:99) 06-27 15:01:29.424: エラー/AndroidRuntime(646): android.os.Looper.loop(Looper.java:123) 06-27 15:01:29.424: エラー/ AndroidRuntime(646): android.app.ActivityThread.main(ActivityThread.java:4627) 06-27 15:01:29.424: エラー/AndroidRuntime(646): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で06-27 15:01:29.424: エラー/AndroidRuntime(646): java.lang.reflect.Method.invoke(Method.java:521) で 06-27 15:01:29.424: エラー/AndroidRuntime(646): でcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 06-27 15:01:29.424: エラー/AndroidRuntime(646): com.android.internal.os.ZygoteInit.main(ZygoteInit) で.java:626) 06-27 15:01:29.424: エラー/AndroidRuntime(646): dalvik.system.NativeStart.main(ネイティブ メソッド) 06-27 15:01:29.424: エラー/AndroidRuntime(646):原因: java.lang.NullPointerException 06-27 15:01:29.424: ERROR/AndroidRuntime(646): com.sardarjijokes.ncpl.Example.onCreate(Example.java:85) 06-27 15:01:29.424:エラー/AndroidRuntime(646): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 06-27 15:01:29.424: エラー/AndroidRuntime(646): android.app.ActivityThread.performLaunchActivity(ActivityThread.java) :2627)

提案を提供してください。

4

2 に答える 2

0

以下を試してください:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 setContentView(R.layout.main); //set Activity layout here
    if (APP_ID == null) {
        Util.showAlert(this, "Warning", "Facebook Applicaton ID must be " +
                "specified before running this example: see Example.java");
    }


    mLoginButton = (LoginButton) findViewById(R.id.login);
    mText = (TextView)findViewById(R.id.txt);

    mPostButton = (Button) findViewById(R.id.postButton);

    **mFacebook = new Facebook(APP_ID);**//this is where i get a Null Pointer Exception
    mAsyncRunner = new AsyncFacebookRunner(mFacebook);
于 2012-06-27T10:20:23.213 に答える
0

コードがわかりません。APP_IDnull の場合、警告メッセージが表示されますが、残りのコードは実行されます。

そうではありませんか:

if (APP_ID == null) {
    Util.showAlert(this, "Warning", "Facebook Applicaton ID must be " + "specified before running this example: see Example.java");
    return;
}

?

于 2012-06-27T11:13:22.873 に答える