内置相机应用程序正确保存我的视频后出现神秘的 NullpointerException

2024-02-12

我有一个活动,如果您打开一个对话框并单击一个图标,就可以录制视频。 问题是,在我停止录制后,即使视频已正确保存,它也会抛出 NullPointerException。根据 Log Cat 的说法,错误不在我的代码中,所以我尝试在代码中放置“检查点”,我发现即使是我的活动的 onActivityResult 也能正确执行,所以现在我不知道该怎么做。

这是日志猫:

Code:

这些来自我调用相机应用程序的对话框

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO); 


intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); // set the video image quality to high
// start the Video Capture Intent

((Activity)context).startActivityForResult(intent, CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE);



private static Uri getOutputMediaFileUri(int type)
{ 
    return Uri.fromFile(getOutputMediaFile(type));
}


private static File getOutputMediaFile(int type)
{
    // To be safe, you should check that the SDCard is mounted
    // using Environment.getExternalStorageState() before doing this.
  File mediaStorageDir = new File(Environment.getExternalStorageDirectory()+"/Movies",   "MyCameraApp");
    // This location works best if you want the created images to be shared
    // between applications and persist after your app has been uninstalled.

    // Create the storage directory if it does not exist
    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaFile;
    if (type == MEDIA_TYPE_IMAGE){
        mediaFile = new File(mediaStorageDir.getPath() + "/" +
        "IMG_"+ timeStamp + ".jpg");
    } else if(type == MEDIA_TYPE_VIDEO) {
        mediaFile = new File(mediaStorageDir.getPath() + "/" +
        "VID_"+ timeStamp + ".mp4");
    } else {
        return null;
    }

    return mediaFile;
}

该代码或多或少是从 android 开发者网站复制的。 正如我所提到的,在此之后,甚至我的活动的 onActivityResult 也会正确执行(我关闭对话框)。


尝试这个:

private static File getOutputMediaFile(int type)
{
  File mediaStorageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES);

    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String mediaFile;
    if (type == MEDIA_TYPE_IMAGE){
        mediaFile = "IMG_"+ timeStamp + ".jpg";
    } else if(type == MEDIA_TYPE_VIDEO) {
        mediaFile = "VID_"+ timeStamp + ".mp4";
    } else {
        return null;
    }

    return new File(mediaStorageDir, mediaFile);
}

getExternalStorageDirectory 方法返回 File 对象,而不是可以附加子目录的字符串。

它还想知道该方法返回的目录是否可用于服务。 Android 规范说:

在具有多个用户的设备上(如 UserManager 所描述),每个用户 用户有自己独立的外部存储。应用程序只有 访问其运行用户的外部存储。

哈哈!!!!才发现这个问题是两年前问的!你找到答案了吗??哈哈

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

内置相机应用程序正确保存我的视频后出现神秘的 NullpointerException 的相关文章

  • Android 12:如何防止更改手机壁纸时重新启动活动?

    在 Android 12 上 如果我们开启一个活动 进入手机主屏幕更换壁纸 切换回我们的 Activity 该 Activity 重新启动 看起来它与 Material You 主题有关 我想在我的应用程序进入前台时禁用活动的重新启动 有办
  • 为什么 Kotlin 数据类可以在 Gson 的不可空字段中包含空值?

    在 Kotlin 中你可以创建一个data class data class CountriesResponse val count Int val countries List
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • 更改 AChartEngine 中的图例大小

    我想专门更改饼图的图例大小输出 我已经尝试了所有可以找到的 AChartEngine 方法 但没有一个只能更改图例文本大小 我必须重写 onDraw 函数吗 如果是这样 怎么办 要设置图例高度 请使用 renderer setLegendH
  • 无法将 Tesseract OCR 模块添加到 Android Studio

    我按照此处找到的分步指南进行操作 https www codeproject com Articles 840623 Android Character Recognition https www codeproject com Artic
  • 如何在照片删除后刷新 Android 的 MediaStore

    问题 如何使媒体存储刷新其已删除文件的条目 从外部存储中删除代码中的照片后 我仍然在图库中看到已删除照片的插槽 空白照片 画廊似乎反映了媒体存储 并且在媒体存储中找到了已删除的照片 直到手机重新启动或通常 直到重新扫描媒体为止 尝试扫描已删
  • Android 手机应用意图

    我想在手机上启动手机应用程序作为意图 我正在使用这个代码 startActivity getPackageManager getLaunchIntentForPackage com android phone 但该函数抛出一个空指针异常 因
  • 6:需要显示BuyFlow UI

    There is a problem when i am click on payWithGoogle Button I am implementing Google Pay in my Android Application and wh
  • 我们可以在 android studio 中拥有没有 app 文件夹的项目,并将所有内容(java/res/etc)放在根目录中吗

    我想知道在 Android studio 中是否可以有没有应用程序模块 应用程序或任何其他名称 的 android 项目 意味着我可以在项目本身的根目录中创建包和资源 而不是使用应用程序模块 编辑 结构看起来像 MyApp idea gra
  • 在 Android 中使用 iText 读取或打开 PDF 文件

    我是 Android 应用程序开发新手 使用 iText 我完成了 PDF 创建并在创建的文件上写入 现在我想阅读该 PDF 文件 如何使用 iText 打开或阅读 PDF 文件 例子将是可观的 那么提前 哪个是渲染 PDF 文件的最佳库
  • 如何从SurfaceView绘制到Canvas?

    我正在尝试做简单的画家 问题是Android看起来有三个独立的Canvas并给我它来顺序绘制 我用以下方式制作了用户界面SurfaceView 把霍尔德从中拿走 Override protected void onCreate Bundle
  • 更改android中禁用按钮的颜色

    有没有办法通过样式或其他形式更改 android 中禁用按钮的颜色 我目前有以下内容 可绘制 button default xml
  • 点击监听器的公共类

    我的所有 6 项活动中有 7 个按钮 所有 6 个按钮在所有活动中都具有相同的功能 如何为这 6 个按钮执行通用的单击事件侦听器 您可以创建一个实现 View OnClickListener 的新类 如下所示 public class My
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • Google Android Drive api 在已安装版本上登录失败

    我开发了一个使用 GoogleDrive api 的 Android 应用程序 当处于调试状态或运行调试版本时 应用程序 工作正常 并正确验证附加的谷歌帐户 等 当我构建发行版本时 使用我的签名密钥 并且 安装apk文件 当我运行时 Goo
  • 按名称查找视图

    是否可以通过名称而不是 id 来查找视图 findViewById R id someView 但我想做这样的事情 findViewByName someView 在处理 xml 时 您必须通过标识符查找视图 但是您可以使用以下方式查找标识
  • Android:如何通过右侧的十字按钮清除EditText

    我创建了一个EditText用于搜索 左侧包含搜索图标 右侧包含图标
  • gradle-experimental:0.1.0 buildConfigField

    谁知道怎么定义buildConfigField在实验性的 gradle 插件中 android productFlavors create demo applicationId com anthonymandra rawdroid buil
  • 绘制大位图时 nSyncAndDrawFrame 速度极慢

    我想用多个大位图优化视差滚动视图 在我的 Nexus 5 上 一切都很顺利 Traceview 转储如下所示 doFrame 方法大约需要 18 毫秒才能完成 但是 当使用我的 Nexus 7 或 Android 6 模拟器 Genymot

随机推荐

  • 如何将excel内部编码的小时数转换为R中的小时数? [复制]

    这个问题在这里已经有答案了 我有一个小时变量存储为 R 中的 Excel 内部编码 参见 https www ablebits com office addins blog 2015 06 23 excel time format now
  • 使用 vba 翻译文本

    可能是一个罕见的请愿书 但问题是这样的 我正在将第三方的 Excel 调整到我的组织中 Excel 是用英语开发的 而我组织的人员只会说西班牙语 我想使用与原始工作表完全相同的代码 我不想碰它 尽管我可以做到 所以我想使用每次出现 msgb
  • 如何使用kso​​ap2设置soap标题 - android

    我需要将肥皂头信息设置为 Web 方法身份验证的一部分 我在用着ksoap2用于调用 NET Web 服务的 API 这是带有请求的肥皂头
  • 用引号将文本包裹在 UILabel 中?

    默认情况下 UILabels 会截断文本 然后在末尾添加省略号 如何将所有文本 包括椭圆 用双引号引起来 Use two UILables 第一个保存文本 加上左引号 第二个仅保存右引号 text that is lon
  • 从基本矩阵估计 T 和 R

    我创建了一个简单的测试应用程序来执行翻译 T 和旋转 R 从基本矩阵进行估计 生成 50 个随机数Points 计算投影点集1 转换Points通过矩阵 R T 计算新的投影点集2 然后计算基础矩阵F 提取必要的矩阵 如E K2 T F K
  • 在 RecyclerView 中隐藏视图

    我有这样的代码 public static class MyViewHolder extends RecyclerView ViewHolder InjectView R id text TextView label public MyVi
  • Double 到 Byte 类型转换错误

    当执行转换时byte to double通过数学运算我得到了预期的结果 执行相同的数学运算来反转值的变化 只要我保持不变 就会得到正确的值double类型 但当最后我转变时double结果返回到bytevalue 转换结果不正确 1 这只是
  • 如果 SQL Server 中另一列不存在值,则按日期季度获取行数和总和组

    我有一些样本数据 Date Status OfferNum Amount 2016 10 30 1 2000 1000 00 2016 08 25 0 2000 1100 00 2016 07 12 0 2001 1200 00 2016
  • 如何为listview设置一个简单的适配器?

    我在将 arraylist 添加到列表视图时遇到问题 将在这里解释我的问题 告诉我这里出了什么问题 我有三个线性布局 在中间布局中我有列表视图 如下面的 xml 文件所示
  • 删除 Flex 中的所有事件侦听器

    如何一次删除所有组件上的所有事件侦听器 特别是当不知道每个组件附加了哪些侦听器时 您可以重写 UIComponent 继承的 mx core FlexSprite 并生成创建的侦听器数组 Doug McCune 发布源代码here http
  • 何时使用查询参数与矩阵参数?

    查询参数 http example com apples order random color blue 矩阵参数 http example com apples order random color blue 什么时候应该使用查询参数而不
  • 如何刷新 Firebase 会话 Cookie

    我正在开发一个使用 Node js Express js 作为后端的 Web 应用程序 我使用 Firebase 进行用户身份验证 并使用 Firebase Admin SDK 管理用户注册等 当用户想要登录时 我使用 Firebase C
  • jqGrid多选,移动到下一页时复选框保留

    如果您看到 jqGrid 演示 http www trirand com blog jqgrid jqgrid html http www trirand com blog jqgrid jqgrid html 部分 高级 gt 多选 当我
  • MariaDB 数据库损坏:引擎中不存在表

    我正在环境设置中 运行 OS XMariaDB 10 0 12 MariaDB Homebrew 我搞砸了安装 所以我从我的设置中完全删除了 MySQL 和 MariaDB 然后重新开始 完成安装 MariaDB 后 我重新导入了我的数据库
  • Excel VBA HTML 嵌套查询选择器

    考虑一下 html 页面的摘录 div class BoxBody span class txt 20 Records found span p style text align right span class txt First Pre
  • Rails:simple_form 中集合所需的属性

    我们正在努力设定required以简单形式 以下设置不起作用 也尝试过 input html gt required true 但效果并不好 正确的设置方法是怎样的required以简单形式 找到了 如果您使用此命令 rails gener
  • OpenGL/glut/stdc++ 构建错误

    我正在使用 Ubuntu 并尝试使用 synaptic 安装其中包含 GLUT 一词的所有内容以及 SDL 和 opengl 但一个简单的程序仍然无法编译 它显示了这一点 opengl1 cpp text 0xe undefined ref
  • 错误:在openstack pike devstack上创建实例时未建立sql_connection参数

    我已经通过以下链接在我的 Ubuntu 16 04 上成功安装了 Openstack Devstack pike https www mirantis com blog how to install openstack on your lo
  • 使用 ssl(端口转发)在 vagrant 沙箱上访问 apache

    我构建了一个 vagrant virtualbox Web 服务器作为开发沙箱 并在 VM 中为 ssl 配置了 apache 在默认端口 443 上 具有自签名证书 我已经使用curl在虚拟机本身上测试了页面 curl v k https
  • 内置相机应用程序正确保存我的视频后出现神秘的 NullpointerException

    我有一个活动 如果您打开一个对话框并单击一个图标 就可以录制视频 问题是 在我停止录制后 即使视频已正确保存 它也会抛出 NullPointerException 根据 Log Cat 的说法 错误不在我的代码中 所以我尝试在代码中放置 检