Причина в том, что requestedPermissions
может быть нулевым в соответствии с документацией.
/**
* Array of all {@link android.R.styleable#AndroidManifestUsesPermission
* <uses-permission>} tags included under <manifest>,
* or null if there were none. This is only filled in if the flag
* {@link PackageManager#GET_PERMISSIONS} was set. This list includes
* all permissions requested, even those that were not granted or known
* by the system at install time.
*/
public String[] requestedPermissions;
Но ваша переменная permissionList
безопасна для нулевого значения - вы не можете присвоить нулевое значение переменной, безопасной для нулевого значения.
UPD: попробуйте использовать этот код (добавлена проверка нуля и массив заменен списком)
object RuntimePermissionUtil {
private var permissionList = mutableListOf<String>()
fun retrivePermissionList(context: Context) : List<String>{
context.getPackageManager().getPackageInfo(context.packageName, PackageManager.GET_PERMISSIONS).requestedPermissions?.let {
permissionList.clear()
permissionList.addAll(it)
}
//your other stuff
return permissionList
}
}