Ich habe versucht, eine einfache App mit einem Facebook Login Button zu bauen, ich habe ein Tutorial verwendet, und die App startet, die Facebook Login Schaltfläche ist da, aber wenn ich sie drücke, "beendet" die App (immer noch im Task Switcher sichtbar) .Android - Facebook SDK registerCallback wird nie aufgerufen?
Ich versuchte
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
und
compile 'com.facebook.android:facebook-android-sdk:4.11.0'
als auch zu verwenden.
Das Protokoll sagt keine besondere:
04-24 19:03:08.721 1569-1569/com.example.fblogin D/FLRT: onCreate
04-24 19:03:08.721 1569-1569/com.example.fblogin D/FLRT: facebookSDKInitialize
04-24 19:03:08.761 1569-1648/com.example.fblogin D/libc-netbsd: [getaddrinfo]: hostname=xxxxx; servname=(null); cache_mode=(null), netid=0; mark=0
04-24 19:03:08.762 1569-1648/com.example.fblogin D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=xxxxx; ai_flags=4; ai_family=0
04-24 19:03:08.762 1569-1648/com.example.fblogin D/libc-netbsd: [getaddrinfo]: hostname=xxxxx; servname=(null); cache_mode=(null), netid=0; mark=0
04-24 19:03:08.762 1569-1648/com.example.fblogin D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=xxxxx; ai_flags=1024; ai_family=0
04-24 19:03:08.766 1569-1648/com.example.fblogin I/System.out: propertyValue:false
04-24 19:03:08.832 1569-1569/com.example.fblogin I/PhoneWindow: [generateLayout] setColorNavigationBar => color=0x ff000001
04-24 19:03:08.833 1569-1569/com.example.fblogin D/PhoneWindowEx: [PWEx][generateLayout] setNavigationBarColor2 : colors=0xfff5f5f5
04-24 19:03:08.833 1569-1569/com.example.fblogin I/PhoneWindow: [setNavigationBarColor2] color=0x fff5f5f5
04-24 19:03:08.850 1569-1569/com.example.fblogin D/FLRT: getLoginDetails
04-24 19:03:08.874 1569-1671/com.example.fblogin D/OpenGLRenderer: Render dirty regions requested: true
04-24 19:03:08.875 1569-1671/com.example.fblogin I/Adreno-EGL: <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.00.02.042.013_msm8974_LA.BF.1.1.1_RB1__release_AU()
OpenGL ES Shader Compiler Version: E031.25.03.00
Build Date: 01/21/15 Wed
Local Branch: mybranch7061829
Remote Branch: quic/LA.BF.1.1.1_rb1.7
Local Patches: NONE
Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.00.02.042.013 + NOTHING
04-24 19:03:08.876 1569-1671/com.example.fblogin I/OpenGLRenderer: Initialized EGL, version 1.4
04-24 19:03:08.894 1569-1671/com.example.fblogin D/OpenGLRenderer: Enabling debug mode 0
04-24 19:03:08.902 1569-1569/com.example.fblogin D/Atlas: Validating map...
04-24 19:03:09.113 1569-1569/com.example.fblogin I/Timeline: Timeline: Activity_idle id: [email protected] time:5375840
04-24 19:03:35.675 1569-1569/com.example.fblogin I/ViewRootImpl: ViewRoot's Touch Event : ACTION_DOWN
04-24 19:03:35.711 1569-1569/com.example.fblogin I/ViewRootImpl: ViewRoot's Touch Event : ACTION_UP
Die letzten 2 Einträge (Touch Veranstaltung: ACTION_DOWN und ACTION_UP) sind die Protokolle der Login-Taste drücken. Danach gibt es keine Protokolleinträge mehr.
Die Aktivität:
public class LoginActivity extends AppCompatActivity {
public static final String FLRT = "FLRT";
private LoginButton loginButton;
public CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(FLRT, "onCreate");
facebookSDKInitialize();
setContentView(R.layout.activity_login);
loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions("public_profile", "user_friends","user_birthday","user_about_me","email");
getLoginDetails(loginButton);
}
@Override
public void onBackPressed() {
LoginActivity.this.finish();
super.onBackPressed();
}
protected void facebookSDKInitialize() {
Log.d(FLRT, "facebookSDKInitialize");
FacebookSdk.sdkInitialize(LoginActivity.this);
AppEventsLogger.activateApp(this);
callbackManager = CallbackManager.Factory.create();
}
protected void getLoginDetails(LoginButton login_button){
Log.d(FLRT, "getLoginDetails");
// Callback registration
login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult login_result) {
Log.d(FLRT, "Facebook Login: Successful!");
}
@Override
public void onCancel() {
// code for cancellation
Log.d(FLRT, "Facebook Login: Canceled!");
}
@Override
public void onError(FacebookException exception) {
// code to handle error
Log.d(FLRT, "Facebook Login: Error: " + exception.toString());
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(FLRT, "onActivityResult");
callbackManager.onActivityResult(requestCode, resultCode, data);
Log.e("data",data.toString());
}
}
Wo kommt nicht wahr?
Danke!