2012-03-14 58 views
3

我正在開發相機應用程序。有時我試圖在前臺應用程序重新安裝應用程序。在安裝過程中,應用程序將被終止,並且不會調用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」。

有沒有人有任何想法,爲什麼系統沒有釋放相機殺死它。

回答

1

您是否向Manifest文件添加權限?

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 
+0

我已經添加了第一行,但沒有添加第二行和第三行。據我所知,元素被Google Play等市場用作過濾器。 – 2012-03-14 09:00:42

0

也許嘗試把你的cam.release()在的onDestroy,而不是將OnPause方法?我不知道這是否會有所幫助,但這是。我想看看它是否修復它。

+0

當系統終止進程時,onPause和onDestroy都不會被調用。但是,謝謝你的回答。 – 2012-03-14 15:00:47

0

不允許用戶在手機內存不足時使用攝像頭。當android殺死進程時,您不希望自己的應用遭到指責。

相關問題