Cache Ich bin neu in Android sowie Fb SDK. Also bitte posten Sie einen Vorschlag oder eine Referenz.App stürzt jedes Mal bei Kaltstart ab, nachdem ich die Daten gelöscht und
Es funktionierte gut, bis ich die Daten löschte. Jetzt stürzt die App beim Kaltstart ab. Ich habe den Login-Status überprüft, bin aber immer noch mit dem Lebenszyklus der currentAccessToken
verwechselt. Gibt es ein Dokument oder ein Lebenszyklusdiagramm von accessToken
, dem ich folgen könnte? Hier ist der Code, den ich versucht habe.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fabric.with(this, new Crashlytics());
initialiseFacebookSdk();
setContentView(R.layout.activity_signin);
ButterKnife.bind(this);
animShow = AnimationUtils.loadAnimation(this, R.anim.slide_up);
mSignIn.startAnimation(animShow);
mLogoImg.setAlpha(200);
}
public boolean isLoggedIn() {
return AccessToken.getCurrentAccessToken() != null && Profile.getCurrentProfile() != null;
}
private void initialiseFacebookSdk() {
FacebookSdk.sdkInitialize(this.getApplicationContext());
mCallbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
String userId = loginResult.getAccessToken().getUserId();
String accessToken = loginResult.getAccessToken().getToken();
Log.d(TAG, "UserId: " + userId + "\n" + "AccessToken: " + accessToken + "");
// Add code here for sending userId and access token to api
Intent intent = new Intent(SignInActivity.this, HomeScreenActivity.class);
startActivity(intent);
}
@Override
public void onCancel() {
Snackbar.make(getCurrentFocus(), "Login cancelled!", Snackbar.LENGTH_LONG)
.setActionTextColor(ContextCompat.getColor(getApplicationContext(), R.color.snackbar_action_color))
.show();
}
@Override
public void onError(FacebookException error) {
Snackbar.make(getCurrentFocus(), "Login error. Retry!", Snackbar.LENGTH_LONG)
.setActionTextColor(ContextCompat.getColor(getApplicationContext(), R.color.snackbar_action_color))
.show();
Log.d(TAG, error + "");
}
});
}
@OnClick({R.id.sign_fb_splash_linear})
void onClick() {
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile"));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (isLoggedIn()) {
Intent intent = new Intent(SignInActivity.this, HomeScreenActivity.class);
startActivity(intent);
} else {
super.onActivityResult(requestCode, resultCode, data);
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}
}
}
Hier ist die logcat
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=64206, result=-1, data=Intent { (has extras) }} to activity {com.debdeep.partyhere.activity.SignInActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.view.ViewGroup.getContext()' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:3588)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3631)
at android.app.ActivityThread.access$1300(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1359)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5268)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.view.ViewGroup.getContext()' on a null object reference
at android.support.design.widget.Snackbar.<init>(Snackbar.java:183)
at android.support.design.widget.Snackbar.make(Snackbar.java:215)
at com.debdeep.partyhere.activity.SignInActivity$1.onError(SignInActivity.java:101)
at com.facebook.login.LoginManager.finishLogin(LoginManager.java:579)
at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:216)
at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:159)
at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:82)
at com.debdeep.partyhere.activity.SignInActivity.onActivityResult(SignInActivity.java:129)
at android.app.Activity.dispatchActivityResult(Activity.java:6235)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3584)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3631)
at android.app.ActivityThread.access$1300(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1359)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5268)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
Sie ein Samsung-Gerät mit Ihrer App zu testen? Ich habe ein Problem mit Samsung-Telefonen festgestellt, das Probleme beim Neustarten/Starten der Anwendung verursacht. Wenn ja, habe ich noch keine Lösung gefunden. – TheAnonymous010
Nein Ich verwende ein Gerät des Yu-Herstellers. – Debdeep
Glauben Sie, dass etwas mit der Logik nicht stimmt? – Debdeep