2010-01-28 68 views
3

Android SDK具有使用相機預覽的API演示。但是,這給了我一個模擬器中的運行時異常。我使用Eclipse在Mac上運行10.6Android SDK相機API演示崩潰

此處,我抓住了代碼的鏈接:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html

+1

任何時候當您在StackOverflow上提出有關「運行時異常」的問題時,如果您發佈堆棧跟蹤,這將是一個巨大的幫助。有了這個,我們可以幫忙。沒有這個,我們必須隨機猜測。您可以通過'adb logcat',DDMS或Eclipse中的DDMS透視圖查看堆棧跟蹤。 – CommonsWare 2010-01-28 11:44:04

回答

7

請在AndroidManifest.xml文件中確保您已設置權限使用相機。將此行放在應用程序標記上方。

<uses-permission android:name="android.permission.CAMERA" /> 
+0

感謝一堆,我希望他們在演示代碼中提到過。 – James 2010-01-30 23:17:52

+2

當在實際的Nexus One設備上運行時,即使在調試器中,Camera Preview也會崩潰,無法提供有用的信息。使用權限行已經在清單中。 – 2010-02-06 23:01:15

+0

和corey一樣 – sami 2011-10-08 17:28:55

0

關於NexusOne崩潰。

由於Corey Trager在他的評論中提到,當查看2.1 SDK附帶的ApiDemos包時,缺少的權限不是問題。

一個解決方案,我發現這個問題簡單地改變所要求的預覽大小CameraPreview

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h){..} 

替換此行:

parameters.setPreviewSize(w,h); 

parameters.setPreviewSize(352,288); 

該決議是G1 DevPhone的合法解決方案。

4

我在Nexus One上使用了一些東西。

如果您正在嘗試編寫相機應用程序,那麼API演示應用程序將無法提供足夠的幫助。下載源代碼的Android相機應用程序本身:

https://android.googlesource.com/platform/packages/apps/Camera

關於你的問題,你會學到的是,你將需要限制您的清單您的應用程序爲橫向模式。在SurfaceChanged中,只需調用startPreview。根本不要設置預覽大小。

0

您可以使用

List<Camera.Size> getSupportedPreviewSizes()

,並從列表

0

這個問題在Google Code Android defects也提到挑大小,以及它可能對您有所幫助,在底部中提到的代碼作爲解決預覽問題的可能解決方案之一。