未找到处理 Intent act=android.media.action.IMAGE_CAPTURE 的 Activity

Posted

技术标签:

【中文标题】未找到处理 Intent act=android.media.action.IMAGE_CAPTURE 的 Activity【英文标题】:No Activity found to handle Intent act=android.media.action.IMAGE_CAPTURE 未找到处理 Intent act=android.media.action.IMAGE_CAPTURE 的 Activity 【发布时间】:2012-02-20 00:24:01 【问题描述】:

我在尝试调用 ACTION_IMAGE_CAPTURE Intent 时在我的 android 应用程序中收到以下崩溃报告。这段代码已经在我的应用程序中运行了几个月,没有任何问题。我猜这是特定类型手机的特定内容,但不幸的是,谷歌没有向我提供堆栈跟踪之外的任何其他信息。任何想法可能导致此崩溃报告?

堆栈跟踪

android.content.ActivityNotFoundException: No Activity found to handle Intent  act=android.media.action.IMAGE_CAPTURE 
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
    at android.app.Activity.startActivityFromChild(Activity.java:3067)
    at android.app.Activity.startActivityForResult(Activity.java:2847)

生产代码

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, MY_CAMERA_ACTIVITY_REQUEST_CODE);

清单条目

<uses-sdk android:minSdkVersion="7" />
<uses-feature android:name="android.hardware.camera" />

【问题讨论】:

【参考方案1】:

我想到了一些事情 1.可以是平板,kindle fire没有摄像头。 2.没有摄像头的手机 3. 没有安装SD卡

我同意您会认为调用图像捕获意图是一种安全的操作,但是由于运行 Android 的设备如此之多,因此无法知道您的应用在哪个设备上运行。

【讨论】:

谢谢。我误解了“使用功能”的目的,认为如果设备没有摄像头,Android Market 会过滤掉我的应用程序。 “声明的 元素仅供参考,这意味着 Android 系统本身在安装应用程序之前不会检查设备上的匹配功能支持。”我发现了另一个帖子,其中有一个关于如何执行检查以查看相机是否存在的示例。如果他们的设备没有摄像头,我将最终实现类似的功能并向用户显示一条消息。 得到同样的错误,但有一个带摄像头和 SD 卡的模拟设备。它也不是平板电脑。在使用 API 7 和 8 的设备上遇到错误。有什么提示吗?

以上是关于未找到处理 Intent act=android.media.action.IMAGE_CAPTURE 的 Activity的主要内容,如果未能解决你的问题,请参考以下文章

android.content.ActivityNotFoundException:未找到处理 Intent act=android.settings.USAGE_ACCESS_SETTINGS

未找到处理 Intent act=com.android.camera.action.CROP 的 Activity

未找到处理 Intent act=android.service.wallpaper.CHANGE_LIVE_WALLPAPER 的活动(有附加功能)

未找到处理 Intent 的活动 - android.intent.action.OPEN_DOCUMENT

未找到Android活动异常:找不到处理Intent的活动

getActivity() 调用导致 RuntimeException:无法启动意图 Intent act=android.intent.action.MAIN