2015-02-07 28 views
1

我想使用解析Facebook登錄功能,並開始通過引用this tutorial的解析Facebook集成。我使用的)一個LoginActivity將調用ParseFacebookUtils.logIn(權限,LoginActivity.this,新LogInCallback(但我收到以下異常java.lang.NullPointerException:參數'applicationId'不能爲空 - 使用PARSE Facebook登錄

02-07 14:22:16.485 29990-29990/prototype.quest.cashquest E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: prototype.quest.cashquest, PID: 29990 
java.lang.NullPointerException: Argument 'applicationId' cannot be null 
     at com.facebook.internal.Validate.notNull(Validate.java:29) 
     at com.facebook.Session.<init>(Session.java:281) 
     at com.facebook.Session.<init>(Session.java:270) 
     at com.facebook.Session$Builder.build(Session.java:1822) 
     at com.parse.FacebookAuthenticationProvider.authenticate(FacebookAuthenticationProvider.java:116) 
     at com.parse.ParseUser.authenticateAsync(ParseUser.java:1500) 
     at com.parse.ParseUser.logInWithAsync(ParseUser.java:1520) 
     at com.parse.ParseUser.logInWithAsync(ParseUser.java:1309) 
     at com.parse.ParseFacebookUtils.logInInBackground(ParseFacebookUtils.java:478) 
     at com.parse.ParseFacebookUtils.logIn(ParseFacebookUtils.java:545) 
     at prototype.quest.cashquest.LoginActivity.onLoginClick(LoginActivity.java:143) 
     at prototype.quest.cashquest.LoginActivity$1.onClick(LoginActivity.java:117) 
     at android.view.View.performClick(View.java:4654) 
     at android.view.View$PerformClick.run(View.java:19438) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:146) 
     at android.app.ActivityThread.main(ActivityThread.java:5487) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
     at dalvik.system.NativeStart.main(Native Method) 

這裏是我的LoginActivity:

public class LoginActivity extends Activity { 

private Dialog progressDialog; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 
    Button login = (Button) findViewById(R.id.fb); 
    login.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      onLoginClick(v); 
      // Starts an intent for the sign up activity 
     } 
    }); 
    // Check if there is a currently logged in user 
    // and it's linked to a Facebook account. 
    ParseUser currentUser = ParseUser.getCurrentUser(); 
    if ((currentUser != null) && ParseFacebookUtils.isLinked(currentUser)) { 
     // Go to the user info activity 
     showUserDetailsActivity(); 
    } 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data); 
} 

public void onLoginClick(View v) { 
    progressDialog = ProgressDialog.show(LoginActivity.this, "", "Logging in...", true); 

    List<String> permissions = Arrays.asList("public_profile"); 
    ParseFacebookUtils.logIn(permissions, LoginActivity.this, new LogInCallback() { 
     @Override 
     public void done(ParseUser user, ParseException err) { 
      progressDialog.dismiss(); 
      if (user == null) { 
       Log.d("Facebook_login", "Uh oh. The user cancelled the Facebook login."); 
      } else if (user.isNew()) { 
       Log.d("Facebook_login", "User signed up and logged in through Facebook!"); 
       showUserDetailsActivity(); 
      } else { 
       Log.d("Facebook_login", "User logged in through Facebook!"); 
       showUserDetailsActivity(); 
      } 
     } 
    }); 
} 

private void showUserDetailsActivity() { 
    Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
    startActivity(intent); 
    } 
} 

這裏所使用的登錄活動我的main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="100dp" 
    android:gravity="center" 
    android:text="@string/login" 
    android:textSize="18sp" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginTop="100dp" 
    android:id="@+id/fb" 
    android:text="@string/com_facebook_loginview_log_in_button" 
    android:textColor="@color/com_facebook_loginview_text_color" 
    android:textSize="@dimen/com_facebook_loginview_text_size" 
    android:textStyle="bold" 

    android:background="@drawable/com_facebook_button_blue" 
    android:drawableLeft="@drawable/com_facebook_inverse_icon" 
    android:drawablePadding="@dimen/com_facebook_likebutton_compound_drawable_padding" 
    android:paddingLeft="@dimen/com_facebook_loginview_padding_left" 
    android:paddingTop="@dimen/com_facebook_loginview_padding_top" 
    android:paddingRight="@dimen/com_facebook_loginview_padding_right" 
    android:paddingBottom="@dimen/com_facebook_loginview_padding_bottom" 
    android:onClick="onLoginClick"/> 
</LinearLayout> 

這裏是去的東西來體現:

  <activity android:name="com.facebook.LoginActivity" 
     android:label="@string/app_name" /> 
    <meta-data android:name="com.facebook.sdk.ApplicationId" 
     android:value="my_facebook_id"/> 

我無法弄清楚了異常的原因,這將是巨大的幫助,如果有人可以建議我什麼可能與此

我試圖通過關於APPLICATION_ID指的帖子在網上研究會錯誤不能是空的,但他們的情況是非常不同的,所以我想發佈一個新的問題,謝謝

回答

0

我得到了答案,,,這是有點奇怪,但只是通過將「my_app_id」放在string.xml並通過manifest.xml中的字符串引用它解決了這個問題,,,,

相關問題