内置相机应用程序正确保存我的视频后出现神秘的 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中点击画布上绘制的圆圈?

    我正在开发一个人脸检测应用程序 在这个应用程序中 我必须在脸上的眼睛和嘴巴用户可以点击拖动圆圈 在检测到的人脸上根据自己设置位置 因此 所有圆圈都已成功绘制在脸上 但我无法单击特定圆圈并使用缩小选项在整个脸上移动 请建议我有关相同问题的正确
  • 更改首选项的背景颜色

    我有一个PreferenceCategory xml 文件 我已经在其中定义了所有首选项 我从扩展的类中调用它PreferenceActivity 我无法设置设置屏幕的背景 该屏幕是在如下所示的 xml 文件的帮助下显示的 请看我已经定义了
  • Whatsapp 在 Android 中共享音频文件时正在剪切音频文件

    我在共享格式不是 mp3 的音频文件时遇到问题 文件被共享 但长度较短 例如 如果文件有 10 秒 则仅共享 5 秒 如果我使用 mp3 格式 它会完全共享 但其他格式会出现问题 注意 该文件在其他应用程序 如Messenger 中共享没有
  • Android 构建 gradle 在特定设备上失败

    我面临一个奇怪的问题 当我编译我的应用程序以在 Android 7 0 的设备上运行它时 它可以工作 但是当我尝试为 Android 4 2 1 的设备进行编译时 它会失败并出现以下错误 错误 任务 app transformClasses
  • 如何检测android中的颠倒方向?

    在我的 Android 应用程序中 我有全景图像 并且我使用 TYPE ORIENTATION 传感器根据手机运动旋转该图像 它对于横向和纵向都工作良好 这是旋转逻辑的代码 Override public void onSensorChan
  • Android 上的硬币识别

    我目前正在开发一个 Android 应用程序 它能够拍摄硬币的现有图像 或者使用内置摄像头扫描单个硬币 非常像 Google Goggles 我正在使用 Android 版 OpenCV 我的问题如下 什么方法最适合使用 OpenCV 在
  • PhoneGap 是应用程序开发的好选择吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • android studio 底部工具栏的“运行”选项卡消失了

    Android Studio 底部工具栏中曾经有一个 运行 选项卡 但该选项卡不再显示 怎么把它带回来 请检查下图以了解它消失之前的位置 Run 选项卡曾经位于 TODO 选项卡之前的红色圆圈中 查看 gt 工具窗口 gt 运行 Or us
  • 用于代码生成的 ANTLR 工具版本 4.7.1 与当前运行时版本 4.5.3 不匹配

    我正在开发一个 Android 应用程序 当前使用 DSL 和一些库 突然构建给了我这个错误 任务 app kaptDebugKotlin 失败 用于代码生成的 ANTLR 工具版本 4 7 1 与当前运行时版本 4 5 3 不匹配 用于解
  • 将搜索结果更新为 Android 中的 Lazy Adapter

    我有项目列表 想为其实现搜索功能 因此 我有一个带有 addTextChangedListener 的文本框 搜索结果运行良好 但当我尝试将结果设置为 ListView 时 新结果将附加到旧结果中 我正在使用惰性适配器 如何清除适配器中的旧
  • ImageButton 拉伸背景图像

    我正在尝试创建一个没有边框的 ImageButton 但遇到了图像按钮大小的问题 我使用 Eclipse ADT 将 ImageButton 拖到布局中并选择背景图像 图像按钮显示如下 正如您所看到的 背景图像和图像按钮周边之间有一个边框
  • 对基本适配器类及其功能的疑问

    我正在尝试自定义列表视图 我使用数组列表添加对象列表 并将其发送到扩展基本适配器的类 当我扩展基本适配器类时 它实现了一些方法 例如 getView 等 在 getView 中 我将其发送到将名称 数据 分配给 XML 格式的自定义菜单的类
  • 如何在Android中隐藏应用程序标题? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想隐藏应用程序标题栏 您可以通过编程来完成 import android app Activity import android os
  • 改造Android基本且简单的问题

    我的服务器返回简单的 Json 结果 如下所示 message Upload Success 我正在尝试将结果放入改造模型类中 public class MyResponse SerializedName message String me
  • 我可以在主线程上读取一个小 txt 文件,还是应该始终避免那里的 I/O?

    我正在读取一个小的 json 文件 其中有几行 它存储在用户设备的内部应用程序文件夹中 我所做的就是这样 JSONObject jsonObject new JSONObject MyUtils inputStreamToString My
  • 在 TextView onTextChanged 上设置文本

    我有一个定义为类属性的文本视图 以便我可以在整个类中访问它 在 onCreate 方法中我执行以下操作 chars TextView findViewById R id chars chars setText 300 之后 public v
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • 在android中的日期选择器对话框中显示当前日期

    我多次尝试在日期选择器对话框中显示当前日期 但失败了 它显示 1 1 1990 我已经遵循了堆栈溢出的一些答案 但不幸的是这些对我不起作用 谁能解释一下在日期选择器对话框中显示当前日期的代码 谢谢 It may help you publi
  • Android 中带有无尽列表视图滚动的 AsyncTask

    我正在创建一个应用程序 其中我需要有无限的滚动列表视图 我不想在我的应用程序中使用任何库 我在网上看到了一些有助于实现此类列表视图的示例 但我的疑问是 当我的数据来自服务器并在异步任务中进行解析时 如何才能拥有无尽的列表视图 如何从滚动异步

随机推荐

  • 如何将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 的说法 错误不在我的代码中 所以我尝试在代码中放置 检