VS 2k8 не Выпускает Дескриптор Файла После Отладки Остановок: Не мог скопировать файл X для вывода каталога, потому что это используется другим процессом

См. Запрос разрешения напрямую соответствует сбою приложения, если служба запрашивается, а разрешение недоступно. Я бы предпочел поместить разрешение в onResume, потому что независимо от того, что пользовательское действие становится, например, сворачивание или диалог разряда батареи появляется в верхней части экрана, нам нужно снова проверить изменения разрешения, чтобы изменения вашей активности могли происходить по каким-либо причинам. Либо камера пытается открыть после запроса сети, либо какова ситуация.

Поместите разрешение на проверку камеры в Resume.

Итак, давайте поговорим о том, как бы вы это сделали. Есть ряд восприятий. Что я предпочитаю делать, так это создавать класс Helper , который позволил бы мне узнать статус разрешения с помощью этого кода

class PermissionsHelper(activity: Activity) {
private val activity: Context

init { this.activity = activity }

fun isCameraPermissionAvailable()=ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED

}

}

[118 ] Таким образом, в методе onResume вашей деятельности проверьте, доступно ли разрешение, иначе запросите разрешение.

 override fun onResume() {
    super.onResume()
    if (!PermissionsHelper(this).isCameraPermissionAvailable()) {
        requestPermissions(arrayOf(Manifest.permission.CAMERA), CAMERA_REQUEST_CODE)
    }
}

Также обратите внимание на два момента

1) You should write permission for camera in manifeast so that app can request the permission
2) Check if the camera permission is available or not before opening the camera, if not you should again request for the permission

(то же, что и на стадии резюме)

6
задан Josh Kodroff 8 October 2008 в 17:36
поделиться

6 ответов

У меня были подобные проблемы в VS2005 и VS2008 без любых установленных дополнений или любых сторонних средств управления в проекте. Единственное решение, которое я нашел, состоит в том, чтобы закрыть Visual Studio и вновь открыть ее. Это - очень неустойчивая проблема и, в то время как раздражающий, тот, которым это кажется, не может быть разрешен на Вашем конце.

2
ответ дан 17 December 2019 в 07:10
поделиться

Существует инструмент Unlocker, который мог бы помочь Вам несколько в проблеме.

0
ответ дан 17 December 2019 в 07:10
поделиться

У нас была подобная проблема с VS2002 при разрабатывании наших проектов. Мы зафиксировали его, когда мы переместились до VS2005 путем создавания нашего приложения в общую папку сборки (т.е. {SolutionRoot }\\Сборка).

0
ответ дан 17 December 2019 в 07:10
поделиться

Вы могли попробовать этот сценарий события перед сборкой:

если существуют "$ (TargetPath).locked" del "$ (TargetPath).locked", если не существуют "$ (TargetPath).locked" перемещение "$ (TargetPath)" "$ (TargetPath).locked"

Некоторые люди сообщили, что это решает проблему.

ОБНОВЛЕНИЕ:

У Вас случайно есть это в Вашем .config (или machine.config?):

<hostingEnvironment shadowCopyBinAssemblies="false"/>

Кажется, что это создаст (или возможно просто усилит), оригинал, "не могущий скопировать" во время проблемы сборки. Конечно, я только добавил, что установка на мой проект, потому что я получал ошибку при отладке о неспособности ASP.NET к тени/копии DLLs. Однако в заднем виде, та проблема вполне немного легче иметь дело с, чем проблема блокировки. С проблемой тени/копии просто необходимо создать и затем ожидать несколько секунд. Это является немного раздражающим, но конечно меньше проблемы, чем необходимость перезапустить Visual Studio каждый раз Вы хотите сделать сборку!

1
ответ дан 17 December 2019 в 07:10
поделиться

Я имею, начинают замечать, что это, кажется, более вероятно, происходит (и возможно только происходит) при выполнении метода, которым это называют во время Приложения. Неактивный.

0
ответ дан 17 December 2019 в 07:10
поделиться

Кажется, это исправлено путем изменения выходного имени сборки, чтобы оно соответствовало пространству имен по умолчанию, по какой-то причине.

Я нашел этот способ обхода через https://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=114694 . Вариант сценария предварительной сборки работает, но только если сборка уже существует. Если вы выполните чистую / сборку, это не сработает.

0
ответ дан 17 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: