Android 使用Facebook SDK登录不起作用
我正在尝试使用>Facebook SDK LoginUsingLoginFragmentActivity集成Facebook登录 这给了我错误: 主活动代码: LoginToFaceBookActivity.java 错误跟踪: 舱单:Android 使用Facebook SDK登录不起作用,android,facebook,android-facebook,Android,Facebook,Android Facebook,我正在尝试使用>Facebook SDK LoginUsingLoginFragmentActivity集成Facebook登录 这给了我错误: 主活动代码: LoginToFaceBookActivity.java 错误跟踪: 舱单: 我正在使用此代码,工作正常,请检查它 if (facebook.getAccessToken() != null) { //user got logged in do you code here is } else
我正在使用此代码,工作正常,请检查它
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();
}
});
}
}
可能是AndroidManifest文件包含错误的信息,说明facebook活动所属的软件包登录-您发布的错误跟踪与清单文件不匹配。您是否在AndroidManifest.xml中添加了facebook登录活动?@Haresh question updated,清单文件添加了什么是LoginToFaceBookActivity的软件包名称?@reiley,你能发布你的登录\u片段\u活动布局代码吗?@reiley:facebook SDK中有一个示例hellofacebookexample导入该示例,该示例与你的代码匹配
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>
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();
}
});
}
}