Android "onRequestPermissionsResult" não está sendo chamado

Estou tentando implementar o suporte de permissão do Marshmallow, mas meu código dentro de "onRequestPermissionsResult" nunca é chamado. As partes "onCreate" e "onMapReady" do código funcionam bem. Verificar se o dispositivo tem permissão e solicitá-la funciona bem.

Estou usando um emulador Nexus 5X executando o Android Marshmallow 6.0, API 23.

Eu tentei fazer o que é mencionado aqui ->Permissões do Android M: onRequestPermissionsResult () não sendo chamado

Mas não consigo fazê-lo funcionar, não importa se eu uso "ActivityCompat.requestPermissions" ou diretamente "requestPermissions", nunca será chamado.

Também atualizei meu appcompat e bibliotecas de suporte para a v24.2.0

Alguma ideia?

Esta é a minha atividade:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;
UiSettings mapSettings;
int MY_LOCATION_REQUEST_CODE;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);

}


@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    //Check location permission for sdk >= 23
    if (Build.VERSION.SDK_INT >= 23) {

        if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED) {
            mMap.setMyLocationEnabled(true);
        } else {
            // Request permission.
            ActivityCompat.requestPermissions(MapsActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
                    MY_LOCATION_REQUEST_CODE);
        }
    }

}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == MY_LOCATION_REQUEST_CODE) {
        if (permissions.length == 1 &&
                permissions[0] == android.Manifest.permission.ACCESS_FINE_LOCATION &&
                grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            mMap.setMyLocationEnabled(true);
        } else {
            // Permission was denied. Display an error message.
        }
    }
}

}

questionAnswers(2)

yourAnswerToTheQuestion