调用系统相机和相册出现闪退报错No Activity found to handle Intent :

在开发安卓项目的时候遇到了一个问题,当手机调用系统相机和相册的时候会出现闪退的现象,根据报错常常是
No Activity found to handle Intent { act=android.media.action.IMAGE_CAPTURE和No Activity found to handle Intent { act=android.media.action.PICK等等


问题描述:

之所以遇到这类问题,主要是因为调用了系统不支持的Intent,比如我使用的这款安卓模拟器(逍遥模拟器):


原因分析:

都2021年了,现在的手机系统几乎不可能犯-跳转至相册或相机会关闭当前Activity这样的小毛病了,况且我监听onDestroy也没接收到回调,所以程序奔溃报错是发生在跳转之前,也就是Activity还没有摧毁。
如果你在电脑的安卓模拟器中使用相机的Intent,不报错才怪,所以既然不能适配模拟器就不要去适配了,能使用CAPTURE适配真机就够了。
至于为什么模拟器相册功能Intent——ACTION_PICK也不能不能适配也会报错,仍然是因为模拟器系统中不包含这个Activity to handler你的跳转请求


解决方案:

我的解决方案是使用系统支持的几个Action,这里推荐几个我测试的

系统功能 Intent.Action 模拟器(SDK27) 真机MUI12(SDK29)
选择图片 Intent.ACTION_PICK ×
选择图片 Intent.ACTION_OPEN_DOCUMENT
选择图片 Intent.ACTION_GET_CONTENT ×
图片裁剪 Intent.ACTION_CROP ×
系统相机 Intent.ACTION_IMAGE_CAPTURE ×

其他可能还有其他的解决方案,但我测试的这几个已经足够实现项目需求了也就不需要再尝试其他的Action解决方案了。

不难看出,电脑的安卓模拟器系统对Action的各项支持都比较失败,而新的系统则抛弃了Intent.ACTION_GET_CONTENT,还是那句话,不是一定要适配就不必去适配。

推荐默认配置是PICK + IMAGE_CAPTURE + CROP,

Intent intent = new Intent(Intent.ACTION_PICK, null);
......
startActivityForResult(intent,chose_puhoto_publish);
......

同时加上系统判断,比如在模拟器方面我就通过

Intent intent = new Intent(Intent.ACTION_PICK, null);
//Pick 的方式可以在真机上运行,但在模拟器不行
if (android.os.Build.VERSION.SDK_INT >= 28){intent.setAction(Intent.ACTION_PICK);
} else {intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
}
.......
startActivityForResult(intent,chose_puhoto_publish);

if (android.os.Build.VERSION.SDK_INT >= 28)
去判断系统,如果满足就使用Crop图片裁剪功能,使用Intent.ACTION_GET_CONTENT选择图片,否则直接跳过该步骤防止报错(实际真实项目不是通过SDK去判断,而是通过其他各种手段判断当前系统环境,这都是研究系统兼容的知识和话题了)

系统是死的,人是活的,遇到问题选择避绕也不失为一种解决方案

调用系统相机和相册出现闪退报错No Activity found to handle Intent相关推荐

  1. Android调用系统相机和相册(更换微信头像)

    最近做了调用系统相机和相册,在其他博客中看到还有对图像进行剪切,大家都知道,我们在玩微信的时候,头像更换是方形图片,接下来我们就对这种情况具体进行描述: 必要的权限: <uses-permiss ...

  2. android调用相机与相册的方法,手把手教你:android调用系统相机、相册功能,适配6.0权限获取以及7.0之后获取URI(兼容多版本)...

    Android中调用系统相机来拍摄照片的代码,以下:html 一.首先设置Uri获取判断以及相机请求Codejava public final int TYPE_TAKE_PHOTO = 1;//Ur ...

  3. 调用系统相机和相册,并且裁剪成圆形图片(解决6.0,7.0,8.0版本问题)

    之前写过一篇博客,那篇博客对7.0手机裁剪图片的问题没有进行解决,现在对之前的那篇博客进行补充,解决了Android6.0,7.0,8.0版本问题,不仅可以调用相册,相机,还可以将图片保存到本地,并且 ...

  4. 调用系统相机、相册、剪裁图片,适配Android 12

    第一步:FileProvider相关准备工作 在AndroidManifest.xml中增加provider节点: <providerandroid:name="androidx.co ...

  5. Android调用系统相机和相册

    拍照和相册的功能在实际开发中是最常见的功能,这里记录下. 准备工作 权限 1 2 3 4 <!-- 往SDCard写入数据权限 --> <uses-permission androi ...

  6. autocad 2014 闪退的一种解决办法: 点击菜单栏即闪退报错

    autocad 闪退的一种解决办法 遇到AutoCAD闪退,比较多的建议是勾选'显示隐藏文件',在相应的应用程序目录下找到Flexnet文件夹,删掉其下的所有文件,然后重新注册激活.还有就是重装-等等 ...

  7. 【Mac】mac 安装Axure RP 8 点不开 就一直跳-后闪退-报错Expected an Int64 but got a System.UInt64

    1.美图 2.概述 2.1 闪退 先确保软件已安装到[应用程序]中: 比如[CleanMyMac X]软件闪退,就输入以下命令然后回车即可:如下图: codesign -f -s - --deep / ...

  8. 开料专家AutoCut Expert软件闪退报错访问OLE注册表的错误,如何解决?

    你好!报错信息 "访问 OLE 注册表" 的意思是程序在访问 OLE (Object Linking and Embedding) 对象的注册表时出现了问题. 你可以尝试以下解决方 ...

  9. TextMeshPro打包后闪退报错UnityEngine.TextCore.LowLevel.FontEngine:TryAddGlyphToTexture_Internal

    今天打包安卓apk后运行总是闪退,死活找不到原因是什么,后来看了下log 2021-04-28 11:25:33.725 2571-2635/? W/System: Ignoring header C ...

最新文章

  1. 自我JAVA零基础学习方法总结,值得推荐
  2. 太阳花图片_6种漂亮的花,种子已经成熟,别忘采摘种子,来年再播种
  3. 【Linux】Face Recognition的封装
  4. 【AI不惑境】深度学习中的多尺度模型设计
  5. C++ STL 总结
  6. 3、leetcode 697 数组的度
  7. MongoDB学习笔记三:查询
  8. SQLite For .Net 已经整合了32位和64位
  9. linux ls 命令
  10. VC消息传递(对话框间传递参数)
  11. 常用CNN网络(AlexNet,GoogleNet,VGG,ResNet,DenseNet,inceptionV4)适合初学者
  12. docker 查看容器名_如何查看Docker容器环境变量,如何向容器传递环境变量
  13. Flutter RotatedBox旋转容器
  14. 手把手教你如何使用kali破解wifi密码(图文教程)
  15. selenium+python自动化84-chrome手机wap模式(登录淘宝页面)
  16. 院士李德毅:大数据认知(演讲全文)
  17. 基于百度api的违规文本识别 分词 tfidf关键词提取 违规文本检测
  18. 标题标签<h1></h1>和段落标签<p>
  19. 解决python爬虫出现的521问题
  20. python中括号的作用_python中中括号

热门文章

  1. Concurrency-with-Modern-Cpp学习笔记 - 线程
  2. 【C++】基于socket的多线程聊天室(控制台版)
  3. 实体机跑gtest单体测试,Linux平台代码覆盖率测试
  4. 手机锂电池规格及充电曲线
  5. 《炬丰科技-半导体工艺》SC1/SC2蚀刻后Si表面的分析
  6. html判断手机浏览器,JS判断浏览器iOS(iPhone)、Android手机移动端
  7. 电脑开机遇见a disk read error occurred场景:
  8. android模拟器dns,网络异常,显示无网络(修改DNS方法)
  9. 计算机输入法如何显示在桌面快捷方式,电脑桌面输入法图标不见了怎么办
  10. miui12和鸿蒙系统,鸿蒙2.0和miui12对比_鸿蒙2.0和miui12使用对比