【问题标题】:Android SDK Camera API Demo CrashesAndroid SDK 相机 API 演示崩溃
【发布时间】:2010-01-28 03:01:46
【问题描述】:

Android SDK 有一个用于使用相机预览的 API 演示。但是,这给了我模拟器中的运行时异常。我在 10.6 的 Mac 上使用 Eclipse 运行

这是我获取代码的链接:

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

【问题讨论】:

  • 任何时候你在 StackOverflow 上问一个关于“运行时异常”的问题,如果你发布了堆栈跟踪,那将是一个巨大的帮助。有了这个,我们也许可以提供帮助。没有它,我们必须随机猜测。您可以通过adb logcat、DDMS 或 Eclipse 中的 DDMS 透视图查看堆栈跟踪。

标签: android camera android-emulator


【解决方案1】:

确保您在 AndroidManifest.xml 文件中设置了使用相机的权限。将此行放在应用程序标记上方。

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

【讨论】:

  • 非常感谢,我希望他们在演示代码中提到了这一点。
  • 在实际 Nexus One 设备上运行时,即使在调试器中,Camera Preview 也会崩溃,没有任何有用的信息。使用权限行已经在清单中。
【解决方案2】:

我的 Nexus One 有一些事情要做。

如果您尝试编写相机应用程序,API 演示应用程序将无法提供足够的帮助。下载 Android 相机应用程序本身的源代码:

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

关于您的问题,您将了解到您需要在清单中将您的应用限制为横向模式。在 SurfaceChanged 中,只需调用 startPreview。根本不要设置预览大小。

【讨论】:

    【解决方案3】:

    关于 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】:

      你可以使用

      List&lt;Camera.Size&gt; getSupportedPreviewSizes ()

      然后从列表中选择尺寸

      【讨论】:

        【解决方案5】:

        Google Code Android defects 中也提到了这个问题,它可能对您有所帮助,其中一个 cmets 底部提到的代码作为处理预览问题的可能解决方案。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-23
          • 2016-03-20
          • 2016-02-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多