session = Session.getActiveSession();
An Active session is already open. You need not open it. This is how I do it:
Session session = Session.getActiveSession();
if (session != null && session.isOpened())
{
List<String> permissions = session.getPermissions();
if (!permissions.contains("publish_actions"))
{
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(FBLogin.this, Arrays.asList("publish_actions"));
session.requestNewPublishPermissions(newPermissionsRequest);
}
}