While the ProximityUuid, major and minor in a Region may be null, you must provide some value for the "uniqueId" which is the first parameter to the constructor:
new Region("com.myappname.myregiondescriptor", null, null, null);
This works, but the following will give you the error you describe:
new Region(null, null, null, null);
That first parameter has nothing to do with the iBeacon identifiers. It is just used as a unique reference string for your app, so you can cancel ranging/monitoring at a later time by passing the IBeaconManager a region with the same uniqueId string. You can give it any value you want, but if you start monitoring or ranging on a second Region that has the same uniqueId value, it will replace that Region currently being monitored.