2014-06-14 113 views
0

我試圖使用集成Facebook登錄>的Facebook SDK LoginUsingLoginFragmentActivity登錄使用Facebook的SDK不工作

這是給我的錯誤:

MainActivityCode:

public class LoginActivity extends Activity { 

    private Button mFacebookLogin; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout_login); 

     mFacebookLogin = (Button) findViewById(R.id.btnFacebookLogin); 
     mFacebookLogin.setOnClickListener(mOnClickListener); 
    } 

    private OnClickListener mOnClickListener = new OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      switch (view.getId()) { 
      case R.id.btnFacebookLogin: 
       Intent intent = new Intent(LoginActivity.this, LoginIntoFacebookActivity.class); 
       startActivity(intent); 
       break; 

      default: 
       break; 
      } 
     } 
    }; 

} 

LoginIntoFacebookActivity。 java

public class LoginIntoFacebookActivity extends FragmentActivity { 

    private UserSettingsFragment userSettingsFragment; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.login_fragment_activity); 

     FragmentManager fragmentManager = getSupportFragmentManager(); 
     userSettingsFragment = (UserSettingsFragment) fragmentManager.findFragmentById(R.id.login_fragment); 
     userSettingsFragment.setSessionStatusCallback(new Session.StatusCallback() { 
      @Override 
      public void call(Session session, SessionState state, Exception exception) { 
       Log.d("LoginUsingLoginFragmentActivity", String.format("New session state: %s", state.toString())); 
      } 
     }); 
    } 

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

} 

錯誤跟蹤:

E/AndroidRuntime(2901): FATAL EXCEPTION: main 
06-14 13:46:28.087: 
E/AndroidRuntime(2901): java.lang.NoClassDefFoundError: com.example.LoginIntoFacebookActivity 

E/AndroidRuntime(2901):  at com.example.activity.LoginActivity$1.onClick(LoginActivity.java:31) 

Line 31: 
     Intent intent = new Intent(MainLoginActivity.this, LoginIntoFacebookActivity.class); 

清單:

<application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.activity.MainLoginActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name="com.facebook.LoginActivity" 
        android:theme="@android:style/Theme.Translucent.NoTitleBar" 
        android:label="@string/app_name" /> 
     <activity android:name="com.example.activity.LoginIntoFacebookActivity" /> 
     <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id" /> 
    </application> 
+0

您是否在AndroidManifest.xml中添加了Facebook登錄活動? –

+0

@Haresh問題已更新,清單文件已添加 – reiley

+0

好的讓我檢查 –

回答

0

我使用此代碼,並能正常工作,請檢查出來。

if (facebook.getAccessToken() != null) { 

      //user got logged in do you code here is 

     } else { 
      loginToFacebook();//user is not login force user to first complete the login 

      } 

public void loginToFacebook() { 

    mPrefs = getPreferences(MODE_PRIVATE); 
    String access_token = mPrefs.getString("access_token", null); 
    long expires = mPrefs.getLong("access_expires", 0); 

    if (access_token != null) { 
     facebook.setAccessToken(access_token); 

     Log.d("FB Sessions", "" + facebook.isSessionValid()); 
    } 

    if (expires != 0) { 
     facebook.setAccessExpires(expires); 
    } 

    if (!facebook.isSessionValid()) { 
     facebook.authorize(this, 
       new String[] { "email", "publish_stream" }, 
       new DialogListener() { 

        @Override 
        public void onCancel() { 
         // Function to handle cancel event 
        } 

        @Override 
        public void onComplete(Bundle values) { 
         // Function to handle complete event 
         // Edit Preferences and update facebook acess_token 
         SharedPreferences.Editor editor = mPrefs.edit(); 
         editor.putString("access_token", 
           facebook.getAccessToken()); 
         editor.putLong("access_expires", 
           facebook.getAccessExpires()); 
         editor.commit(); 
         Toast.makeText(sms_by_id.this, 
           "Successfully Login", Toast.LENGTH_LONG) 
           .show(); 
         pwindo.dismiss(); 

         // Making Login button invisible 

        } 

        @Override 
        public void onError(DialogError error) { 
         // Function to handle error 

        } 

        @Override 
        public void onFacebookError(FacebookError fberror) { 
         // Function to handle Facebook errors 
         pwindo.dismiss(); 
         Toast.makeText(sms_by_id.this, "Facebook Error", 
           Toast.LENGTH_LONG).show(); 
        } 

       }); 
    } 
} 
0

這可能是AndroidManifest文件有哪些包LoginIntoFacebookActivity屬於錯誤的信息 - 有你張貼的錯誤跟蹤和清單文件之間的不匹配。