I have a class called FacebookLogin which is called by a fragment. The FacebookLogin-class contains code that is responsible for Facebook authentication for my app:
public class FacebookLogin {
private CallbackManager mCallbackManager;
private LoginButton lButton;
private static final String TAG = "FacbookLogin";
public FacebookLogin() {
FacebookSdk.sdkInitialize(MainActivity.getApplicationContext());
mCallbackManager = CallbackManager.Factory.create();
}
private FacebookCallback<LoginResult> mCallback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i(TAG, " logged in...");
/* AccessToken accessToken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile(); //Access the profile who Is the person login i*/
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
Log.i(TAG, " Error");
}
};
public void setCallback(LoginButton lButton) {
lButton = lButton;
lButton.registerCallback(mCallbackManager, mCallback);
}
public CallbackManager getCallbackManager(){
return mCallbackManager;
}
}
The problem I have is that when I'm trying to Initialize the SDK, I get the following error:
Non-statick method 'getApplicationContext()' cannot be reference from a static context
How should I initialize the SDK within the class?
Add to constructor Context
parameter:
public FacebookLogin(Context c) {
FacebookSdk.sdkInitialize(c);
mCallbackManager = CallbackManager.Factory.create();
}