我正在開發相機應用程序。有時我試圖在前臺應用程序重新安裝應用程序。在安裝過程中,應用程序將被終止,並且不會調用onPause()
,我將停止預覽並釋放相機資源。在正常情況下,系統會自動關閉並釋放相機,並且我得到以下日誌。重新安裝應用程序後有時不會發布相機
03-14 15:48:36.316: E/CameraHardwareSec(83): Could not dequeue gralloc buffer!
03-14 15:48:36.316: I/CameraHardwareSec(83): int android::CameraHardwareSec::previewThreadWrapper(): calling mSecCamera->stopPreview() and waiting
03-14 15:48:36.363: I/CameraHardwareSec(83): int android::CameraHardwareSec::previewThreadWrapper(): return from wait
03-14 15:48:36.363: I/CameraHardwareSec(83): int android::CameraHardwareSec::previewThreadWrapper(): exiting
03-14 15:48:36.363: W/SecCamera(83): int android::SecCamera::stopPreview(): doing nothing because m_flag_camera_start is zero
03-14 15:48:36.363: W/SecCamera(83): int android::SecCamera::stopRecord(): doing nothing because m_flag_record_start is zero
03-14 15:48:36.363: I/SecCamera(83): DeinitCamera: m_cam_fd(29)
03-14 15:48:36.371: I/SecCamera(83): DeinitCamera: m_cam_fd2(30)
03-14 15:48:36.386: E/CameraHardwareSec(83): preview window is NULL!
03-14 15:48:36.386: I/CameraService(83): Destroying camera 0
03-14 15:48:36.386: I/CameraHardwareSec(83): int android::HAL_camera_device_close(hw_device_t*)
03-14 15:48:36.386: I/SecCamera(83): DeinitCamera : already deinitialized
03-14 15:48:36.390: W/AudioFlinger(83): session id 89 not found for pid 83
03-14 15:48:36.394: W/AudioFlinger(83): session id 90 not found for pid 83
但是,有時這些日誌信息沒有打印出來。我想這意味着相機沒有被釋放。因此,當應用程序重新啓動時,嘗試打開相機時會引發運行時異常「failed to connect to camera service
」。
有沒有人有任何想法,爲什麼系統沒有釋放相機殺死它。
我已經添加了第一行,但沒有添加第二行和第三行。據我所知,元素被Google Play等市場用作過濾器。 –
2012-03-14 09:00:42