Есть смешное исключение:
com.google.maps.api.android.lib6.common.apiexception.b: List<LatLng> cannot be empty.
Там, где список не пустой, очевидно:
List<LatLng> list = new ArrayList<>();
list.add(new LatLng(0, 0));
list.add(new LatLng(10, 10));
list.add(new LatLng(10, 0));
list.add(new LatLng(0, 0));
map.addPolygon(new PolygonOptions().fillColor(Color.RED).addHole(list));
Я что-то пропустил?