No tiene android.permission.access_coarse_location
Access to your approximate location (ACCESS_COARSE_LOCATION), provided based on data from cellular base stations and These are the most dangerous permissions. By default, Android never grants these rights to apps, but some Trojans can exploit system I read that Android (and similar operation systems, e.g. iOS) get the current coarse location by using either WiFi or GSM tower triangulation.
Geolocalización y mapas
Alerts can be late. Ten en cuenta que esta no es una lista exhaustiva, y se evaluará cada app según su funcionalidad principal declarada.
Capítulo 21 - Gestión de permisos en Android - Curso Kotlin .
Para la primera parte, debe usar Our apps will no longer be able to freely access the user locations from services, whether in the foreground or background. 17/02/2017
Primeramente es importante verificar que tengas los servicios de geolocalización activados de otra forma no podrás obtener datos. y como tienes definido únicamente ACCESS_FINE_LOCATION , debes asegurar que este activada la opción de "alta precisión", si no esta activada esa puede ser la razón por la que hoy no te funciona y loc tiene un valor null :
16/11/2017
Desarrollando aplicaciones de Realidad . - DesarrolloLibre