Один из официальных образцов Google для Camera2 API имеет та же самая проблема BufferQueue has been abandoned, как показано в:
В частности, пример приложения вызывает метод closeCamera() из onPause() фрагмента, где closeCamera() вызывает close() на CameraCaptureSession, затем close() на CameraDevice, затем close() на ImageReader (используется для фактической съемки). После close() on CameraDevice, когда в LogCat появляется несколько вхождений вышеупомянутого сообщения BufferQueue has been abandoned, хотя я получаю сообщение только на некоторых устройствах Android 5.1 (Nexus 4 и Nexus 7 2013), а не на других (Nexus 5 и Nexus 6).
Комментарий fadden:
Если пользовательская сторона закрыта перед вводом onPause(), сообщения ожидаются.
Когда TextureView "сторона потребителя" будет закрыта, и почему тогда?
Код примера Google не проактивно ничего не делает, чтобы закрыть TextureView, который я вижу. И, поскольку TextureView все еще может быть видимым при паузе, я ожидал, что "потребительская сторона" не будет затронута во время onPause(), но, возможно, позже в onStop().
Хотя я понимаю, что это сообщение (несмотря на ошибку) является доброкачественным, я пытаюсь понять, как избавиться от него, если не по какой-либо другой причине, чем для того, чтобы не дать мне снова и снова спрашивать, почему мой код регистрирует эту ошибку. Я надеюсь, что, понимая больше об этой "стороне потребителя", я могу понять, как лучше убирать вещи, когда пользователь выходит из действия или фрагмента, использующего Camera2, и избегает этой ошибки.