0

我正在嘗試使用相機,但無法啓動。 hw.camera.back:Webcam()hw.camera.front:webcam()不知道還有什麼要補充的,因爲我無法剪切和粘貼細節。在Android 4.2.2(API等級17)上失敗的Android相機

我得到的錯誤是Unfortunatley,相機已停止。

我的代碼如下,但它不是我的代碼。當我嘗試使用相機而無法使用編程時,我得到相同的錯誤。

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(takePictureIntent, actionCode); 

在LogCat中我有以下幾點。 我在LogCat中看到的一個我不明白的錯誤是用我沒有使用的電子郵件處理,我甚至不知道如何打開或關閉它。 D/ExchangeService(617):!!!未找到電子郵件應用停止自我

03-05 19:39:12.716: I/Choreographer(409): Skipped 90 frames! The application may be doing too much work on its main thread. 
03-05 19:39:12.736: D/dalvikvm(818): GC_FOR_ALLOC freed 20K, 7% free 3675K/3936K, paused 59ms, total 66ms 
03-05 19:39:12.875: D/dalvikvm(818): GC_FOR_ALLOC freed 5K, 7% free 4013K/4276K, paused 61ms, total 64ms 
03-05 19:39:13.056: D/Camera(818): app passed NULL surface 
03-05 19:39:13.076: V/EmulatedCamera_Camera(40): getCameraInfo 
03-05 19:39:13.076: V/EmulatedCamera_BaseCamera(40): getCameraInfo 
03-05 19:39:13.203: D/dalvikvm(818): GC_CONCURRENT freed 73K, 5% free 4429K/4656K, paused 12ms+55ms, total 197ms 
03-05 19:39:13.203: V/camera(818): Preview size is 640x480 
03-05 19:39:13.243: V/EmulatedCamera_Camera(40): setParameters 
03-05 19:39:13.263: V/camera(818): startPreview 
03-05 19:39:13.263: V/EmulatedCamera_Preview(40): setPreviewWindow: current: 0x0 -> new: 0x0 
03-05 19:39:13.263: V/EmulatedCamera_Camera(40): doStartPreview 
03-05 19:39:13.263: V/EmulatedCamera_Preview(40): startPreview 
03-05 19:39:13.263: D/EmulatedCamera_Camera(40): Starting camera: 640x480 -> NV21(yuv420sp) 
03-05 19:39:13.263: V/EmulatedCamera_QemuDevice(40): startDevice 
03-05 19:39:13.276: V/EmulatedCamera_Device(40): commonStartDevice: Allocated 0x41c42008 460800 bytes for 307200 pixels in NV21[640x480] frame 
03-05 19:39:15.273: D/dalvikvm(818): GC_FOR_ALLOC freed 49K, 4% free 4605K/4776K, paused 44ms, total 46ms 
03-05 19:39:15.293: I/dalvikvm-heap(818): Grow heap (frag case) to 5.684MB for 1127536-byte allocation 
03-05 19:39:15.293: E/EmulatedCamera_QemuClient(40): queryStart: Query failed: Cannot start the camera 
03-05 19:39:15.313: E/EmulatedCamera_QemuDevice(40): startDevice: Unable to start device 'AndroidEmulatorVC0' for NV21[640x480] frames 
03-05 19:39:15.313: V/EmulatedCamera_Preview(40): stopPreview 
03-05 19:39:15.378: D/dalvikvm(818): GC_FOR_ALLOC freed 1K, 3% free 5704K/5880K, paused 85ms, total 85ms 
03-05 19:39:15.383: V/EmulatedCamera_CallbackNotifier(40): disableMessage: msg_type = 0x10 
03-05 19:39:15.383: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_PREVIEW_FRAME 
03-05 19:39:15.383: V/EmulatedCamera_CallbackNotifier(40): **** Currently enabled messages: 
03-05 19:39:15.383: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_ERROR 
03-05 19:39:15.383: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_FOCUS 
03-05 19:39:15.383: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_ZOOM 
03-05 19:39:15.383: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_PREVIEW_METADATA 
03-05 19:39:15.393: V/EmulatedCamera_Camera(40): doStopPreview 
03-05 19:39:15.393: V/EmulatedCamera_CallbackNotifier(40): disableMessage: msg_type = 0x10 
03-05 19:39:15.393: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_PREVIEW_FRAME 
03-05 19:39:15.393: V/EmulatedCamera_CallbackNotifier(40): **** Currently enabled messages: 
03-05 19:39:15.393: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_ERROR 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_FOCUS 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_ZOOM 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_PREVIEW_METADATA 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40): disableMessage: msg_type = 0xffff 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_ERROR 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_SHUTTER 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_FOCUS 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_ZOOM 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_PREVIEW_FRAME 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_VIDEO_FRAME 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_POSTVIEW_FRAME 
03-05 19:39:15.403: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_RAW_IMAGE 
03-05 19:39:15.413: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_COMPRESSED_IMAGE 
03-05 19:39:15.413: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_RAW_IMAGE_NOTIFY 
03-05 19:39:15.413: V/EmulatedCamera_CallbackNotifier(40):  CAMERA_MSG_PREVIEW_METADATA 
03-05 19:39:15.413: V/EmulatedCamera_CallbackNotifier(40): **** Currently enabled messages: 
03-05 19:39:15.413: V/EmulatedCamera_Camera(40): doStopPreview 
03-05 19:39:15.413: V/EmulatedCamera_Camera(40): cancelPicture 
03-05 19:39:15.413: V/EmulatedCamera_Camera(40): releaseCamera 
03-05 19:39:15.413: V/EmulatedCamera_Camera(40): doStopPreview 
03-05 19:39:15.423: V/EmulatedCamera_QemuDevice(40): disconnectDevice 
03-05 19:39:15.423: V/EmulatedCamera_QemuDevice(40): disconnectDevice: Disonnected from device 'AndroidEmulatorVC0' 
03-05 19:39:15.423: I/CameraClient(40): Destroying camera 0 
03-05 19:39:15.423: V/EmulatedCamera_Camera(40): closeCamera 
03-05 19:39:15.423: V/EmulatedCamera_Camera(40): doStopPreview 
03-05 19:39:15.443: W/dalvikvm(818): threadid=11: thread exiting with uncaught exception (group=0x40a71930) 
03-05 19:39:15.483: E/AndroidRuntime(818): FATAL EXCEPTION: Thread-67 
03-05 19:39:15.483: E/AndroidRuntime(818): java.lang.RuntimeException: startPreview failed 
03-05 19:39:15.483: E/AndroidRuntime(818): at com.android.camera.Camera.startPreview(Camera.java:1867) 
03-05 19:39:15.483: E/AndroidRuntime(818): at com.android.camera.Camera.access$3100(Camera.java:87) 
03-05 19:39:15.483: E/AndroidRuntime(818): at com.android.camera.Camera$5.run(Camera.java:1112) 
03-05 19:39:15.483: E/AndroidRuntime(818): at java.lang.Thread.run(Thread.java:856) 
03-05 19:39:15.483: E/AndroidRuntime(818): Caused by: java.lang.RuntimeException: startPreview failed 
03-05 19:39:15.483: E/AndroidRuntime(818): at android.hardware.Camera.startPreview(Native Method) 
03-05 19:39:15.483: E/AndroidRuntime(818): at com.android.camera.Camera.startPreview(Camera.java:1864) 
03-05 19:39:15.483: E/AndroidRuntime(818): ... 3 more 
03-05 19:39:15.513: W/AudioFlinger(40): session id 7 not found for pid 40 
03-05 19:39:15.523: W/AudioFlinger(40): session id 8 not found for pid 40 
03-05 19:39:15.553: W/ActivityManager(291): Force finishing activity com.android.camera/.Camera 
03-05 19:39:15.772: D/dalvikvm(818): GC_CONCURRENT freed 25K, 3% free 5706K/5880K, paused 67ms+25ms, total 398ms 
03-05 19:39:16.013: D/dalvikvm(291): GC_FOR_ALLOC freed 1373K, 27% free 8210K/11196K, paused 132ms, total 140ms 
03-05 19:39:16.363: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property 
03-05 19:39:16.610: W/ActivityManager(291): Activity pause timeout for ActivityRecord{410f2198 u0 com.android.camera/.Camera} 
03-05 19:39:16.813: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property 
03-05 19:39:16.873: W/EGL_emulation(409): eglSurfaceAttrib not implemented 
03-05 19:39:29.058: W/ActivityManager(291): Activity destroy timeout for ActivityRecord{410f2198 u0 com.android.camera/.Camera} 
03-05 19:39:54.407: D/ExchangeService(617): Received deviceId from Email app: null 
03-05 19:39:54.407: D/ExchangeService(617): !!! deviceId unknown; stopping self and retrying 
03-05 19:39:59.483: D/ExchangeService(617): !!! EAS ExchangeService, onCreate 
03-05 19:39:59.483: D/ExchangeService(617): !!! EAS ExchangeService, onStartCommand, startingUp = false, running = false 
03-05 19:39:59.543: D/ExchangeService(617): !!! EAS ExchangeService, onStartCommand, startingUp = true, running = false 
03-05 19:39:59.593: W/ActivityManager(291): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found 
03-05 19:39:59.593: D/ExchangeService(617): !!! Email application not found; stopping self 
03-05 19:39:59.643: W/ActivityManager(291): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found 
03-05 19:39:59.663: E/ActivityThread(617): Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]43240 that was originally bound here 
03-05 19:39:59.663: E/ActivityThread(617): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection [email protected]43240 that was originally bound here 
03-05 19:39:59.663: E/ActivityThread(617): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969) 
03-05 19:39:59.663: E/ActivityThread(617): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863) 
03-05 19:39:59.663: E/ActivityThread(617): at android.app.ContextImpl.bindService(ContextImpl.java:1418) 
+0

不要擔心電子郵件,它沒有任何與你的問題。你的問題是'startPreview()'失敗。我們可以看到一些與此相關的代碼嗎?特別有趣的是:'setPreviewWindow:current:0x0 - > new:0x0',因爲它看起來像預覽窗口沒有被設置正確。 – Geobits 2013-03-05 20:09:47

+0

這不是我的代碼,它來自我點擊啓動屏幕上提供的相機。我使用Intent獲得了相同的代碼,在追蹤它的過程中,我發現相機本身不起作用。 – StephanM 2013-03-05 20:12:25

+0

您是否有實際的設備(具有相同的API級別)進行測試?如果它只在模擬器上崩潰,我不會太擔心。 – Geobits 2013-03-05 20:13:48

回答

0

我剛剛測試這對我的身體Samsung Galaxy Nexus running 4.2.2和運行完美。 (最初我以爲我只有4.2但我測試過4.2.2)

我也測試了在macbook pro上運行完美的模擬器上運行。我正在使用仿真器目標:"Google APIs (Google Inc) - API Level 17 (4.2.2)"

您必須確保您在AndroidManifest.xml中擁有以下權限。

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

這將授予許可使用攝像頭,支持自動對焦和寫入存儲

這裏的代碼來啓動相機

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(takePictureIntent); 

「111」可以與任何固定的使用,以取代確定結果回調函數中的活動。

1)如果你已經有權限,我建議你進入Android Virtual Device Manager並從頭創建一個新的AVD

  • 設備= Galaxy Nexus的
  • 目標=谷歌的API(谷歌公司) - API等級17(4.2.2)
  • 硬件鍵盤當前
  • 前置攝像頭 - 網絡攝像頭
  • 後置攝像頭 - 網絡攝像頭

SD卡尺寸= 200MB。並嘗試使用和不使用主機GPU。

2)接下來檢查你的攝像頭。你確定你使用的機器有攝像頭及其功能嗎?當然,如果攝像頭不工作或沒有安裝,這將打破事情。此外,您的機器上的驅動程序可能會有AVD問題。否則,您可以嘗試使用兩者的「模擬」選項,它們基本上只顯示測試/移動圖像。

如果所有這些仍然有問題,那麼它必須是與你有這個intent startActivity內的代碼的東西。你應該嘗試開始一個新的清潔項目,把代碼放在那裏開始活動,修改我展示的AndroidManifest.xml as並從那裏開始。您也可以嘗試在另一臺計算機上運行,​​因爲可能是您的計算機上的網絡攝像頭(如果有的話,驅動程序衝突)。我測試在MacBook Pro上和工作100%

我希望能幫助你

+0

雖然信息豐富,但我從未能夠得到實際的webcam0開始,但現在即使我說要使用webcam0,我仍然可以獲得模擬器屏幕。只要這足以讓我可以將自己的照片塞進畫廊,就好像它是用相機拍攝的一樣。我將需要找到如何做到這一點。此外,我運行在惠普Pavilion dv7運行win7(64) – StephanM 2013-03-06 15:02:52

+0

@ wired00什麼是模擬相機選項android的AVD? – ManirajSS 2015-07-22 14:27:42