Android 为什么 Facebook SDK 退出按钮不显示?
Android Why Facebook SDK Logout button not showing?
我开发了一个带有facebook登录的应用程序,登录过程没有问题。但是我想注销时没有看到按钮。
损坏的应用程序屏幕截图
正在运行的应用程序屏幕截图
损坏的应用 gradle 个文件;
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "com.ex.ex"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// Glide image library
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.android.gms:play-services-auth:9.2.1'
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
问题的根源是什么?我怎样才能解决这个问题?
谢谢。
我假设您使用过 Facebook android sdk 的 LoginButton 小部件。
当您单击 LoginButton 小部件的注销时,将执行以下代码:
protected void performLogout(Context context) {
final LoginManager loginManager = getLoginManager();
if (confirmLogout) {
// Create a confirmation dialog
String logout = getResources().getString(
R.string.com_facebook_loginview_log_out_action);
String cancel = getResources().getString(
R.string.com_facebook_loginview_cancel_action);
String message;
Profile profile = Profile.getCurrentProfile();
if (profile != null && profile.getName() != null) {
message = String.format(
getResources().getString(
R.string.com_facebook_loginview_logged_in_as),
profile.getName());
} else {
message = getResources().getString(
R.string.com_facebook_loginview_logged_in_using_facebook);
}
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(message)
.setCancelable(true)
.setPositiveButton(logout, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
loginManager.logOut();
}
})
.setNegativeButton(cancel, null);
builder.create().show();
} else {
loginManager.logOut();
}
}
confirmLogout 标志默认设置为 true,除非在小部件 xml 文件中指定为 false:
confirmLogout = a.getBoolean(R.styleable.com_facebook_login_view_com_facebook_confirm_logout, true);
所以请检查您的 xml 文件是否 confirm_logout 设置为 false。
但在那种情况下,用户将在不显示警告对话框的情况下静默注销。
请post你的jave代码和xml代码,如果问题仍然没有解决。
尝试关注Facebook for Android Documentation
并使用最新版本compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.google.android.gms:play-services:10.2.0'
我开发了一个带有facebook登录的应用程序,登录过程没有问题。但是我想注销时没有看到按钮。
损坏的应用程序屏幕截图
正在运行的应用程序屏幕截图
损坏的应用 gradle 个文件;
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "com.ex.ex"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// Glide image library
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.android.gms:play-services-auth:9.2.1'
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
问题的根源是什么?我怎样才能解决这个问题?
谢谢。
我假设您使用过 Facebook android sdk 的 LoginButton 小部件。
当您单击 LoginButton 小部件的注销时,将执行以下代码:
protected void performLogout(Context context) {
final LoginManager loginManager = getLoginManager();
if (confirmLogout) {
// Create a confirmation dialog
String logout = getResources().getString(
R.string.com_facebook_loginview_log_out_action);
String cancel = getResources().getString(
R.string.com_facebook_loginview_cancel_action);
String message;
Profile profile = Profile.getCurrentProfile();
if (profile != null && profile.getName() != null) {
message = String.format(
getResources().getString(
R.string.com_facebook_loginview_logged_in_as),
profile.getName());
} else {
message = getResources().getString(
R.string.com_facebook_loginview_logged_in_using_facebook);
}
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(message)
.setCancelable(true)
.setPositiveButton(logout, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
loginManager.logOut();
}
})
.setNegativeButton(cancel, null);
builder.create().show();
} else {
loginManager.logOut();
}
}
confirmLogout 标志默认设置为 true,除非在小部件 xml 文件中指定为 false:
confirmLogout = a.getBoolean(R.styleable.com_facebook_login_view_com_facebook_confirm_logout, true);
所以请检查您的 xml 文件是否 confirm_logout 设置为 false。 但在那种情况下,用户将在不显示警告对话框的情况下静默注销。
请post你的jave代码和xml代码,如果问题仍然没有解决。
尝试关注Facebook for Android Documentation
并使用最新版本compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.google.android.gms:play-services:10.2.0'