Home » Android » android – Few memory leaks in Facebook SDK

android – Few memory leaks in Facebook SDK

Posted by: admin May 14, 2020 Leave a comment

Questions:

I tried to make social module for my app, something like wrapper, that will contain Google+,Facebook and twitter integration templates.

Now I am working with Facebook SDK and decided to use LeakCanary in my app, after successful log in I rotated the device few times, and see the following information:

enter image description here

Here is MainActivity.class:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    setFragment();

}
private void setFragment(){
    getSupportFragmentManager()
            .beginTransaction()
            .add(R.id.container, new MainFragment())
            .commit();
}
}

Here is how I log in to Facebook:

 public void configureFacebook(@NonNull Fragment fragment,
                              @Nullable String permissions, @Nullable String requestFields) {
    setPermissionAndRequestFields(permissions, requestFields);
    loginManager = LoginManager.getInstance();
    callbackManager = CallbackManager.Factory.create();
    loginManager.registerCallback(callbackManager, facebookCallback);
    loginManager.logInWithReadPermissions(fragment, Arrays.asList(this.permissions));
    loginManager=null;

}

I tried log in using Login Button too, in this case I catch this issue and new one, with following info:

enter image description here

Here is how I log in using LoginButton.class:

  public void configureFacebook(@NonNull Fragment fragment,
                              @Nullable String permissions, @Nullable String requestFields, @NonNull LoginButton button) {
    callbackManager = CallbackManager.Factory.create();
    setFbButton(button);
    setPermissionAndRequestFields(permissions, requestFields);
    fbButton.setFragment(fragment);
    fbButton.setReadPermissions(this.permissions);
    fbButton.registerCallback(callbackManager, facebookCallback);

}

I can’t figure out how to fix those issues. What I am doing wrong?

UPDATE: Leak in Facebook Activity.class has been shown without the rotation device.

How to&Answers:

Looks like they may have fixed this for Facebook SDK Version 4.2.0. see here

Updating the Facebook SDK may be the solution to your problem.

Answer:

I updated it to 4.7.0 and I think this issue has been fixed.

Answer:

Fixed in 4.10. I tried without facebook app and checked with memory manager.