You can't create "fixed" object with privileges granted by a role.
That's because roles can be enabled/disabled and if you could create a fixed object that feature would be meaninless.
So, if you want the view, connect as sys and grant yourself privileges on the v_$ views
I hope I'm clear
I was confused because long time ago I was able to create a procedure select v$session only when I granted select on v_$session.
Anyway, enter as sys and grant to the user select on dba_data_files, I tested it and it worked.