`

2010.11.16———android Camera 拍照的两个问题

阅读更多
2010.11.16———android Camera 拍照的两个问题

1、setParameters failed 异常信息如下

11-16 11:21:33.902: WARN/System.err(27218): java.lang.RuntimeException: setParameters failed
11-16 11:21:33.902: WARN/System.err(27218):     at android.hardware.Camera.native_setParameters(Native Method)
...
...


原因在于

parameters.setPreviewSize()//设置预览照片的大小
parameters.setPictureSize()//设置照片的大小


这两个属性 如果这两个属性设置的和真实手机的不一样时,就会报上面的错误 很是郁闷

最好的方法 就是 不设置这两项


2、java.lang.NullPointerException

11-16 13:33:39.801: ERROR/AndroidRuntime(5676): FATAL EXCEPTION: main
11-16 13:33:39.801: ERROR/AndroidRuntime(5676): java.lang.NullPointerException
11-16 13:33:39.801: ERROR/AndroidRuntime(5676):     at com.huitu.project.PicActivity.onKeyDown(PicActivity.java:87)
11-16 13:33:39.801: ERROR/AndroidRuntime(5676):     at android.view.KeyEvent.dispatch(KeyEvent.java:1257)
11-16 13:33:39.801: ERROR/AndroidRuntime(5676):     at android.app.Activity.dispatchKeyEvent(Activity.java:2075)


其实 这个原因 是因为

@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if(event.getRepeatCount()==0 && camera!=null){
			switch (keyCode) {
			case KeyEvent.KEYCODE_SEARCH://按下的是搜索键
				camera.autoFocus(null);//自动对焦
				return true;

			case KeyEvent.KEYCODE_CAMERA:
			case KeyEvent.KEYCODE_DPAD_CENTER:
				camera.takePicture(null, null, new MyPictureCallback());
				Intent data = new Intent();
				data.putExtra("picFile", picFile.getAbsolutePath());
				setResult(100, data);
				finish();
				return true;
			}
		}
		return super.onKeyDown(keyCode, event);
	}

private final class MyPictureCallback implements PictureCallback{
		private String name = "pic";
		public void onPictureTaken(byte[] data, Camera camera) {
			
			try {
				Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
				picFile = new File(Environment.getExternalStorageDirectory(), name + System.currentTimeMillis()+".jpg");
				FileOutputStream outStream = new FileOutputStream(picFile);
				bitmap.compress(CompressFormat.JPEG, 100, outStream);
				outStream.close();
				//camera.startPreview();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
	}

camera.takePicture(null, null, new MyPictureCallback());
这个方法是异步执行的 也就是说

new MyPictureCallback()还没有执行完成,

Intent data = new Intent();
data.putExtra("picFile", picFile.getAbsolutePath());
setResult(100, data);
finish();

下面的代码就开始执行了 这时候 picFile就是空的 所以就会报空指针异常

解决方法 把

Intent data = new Intent();
data.putExtra("picFile", picFile.getAbsolutePath());
setResult(100, data);
finish();

放到MyPictureCallback()里面 最后执行即可















分享到:
评论
5 楼 Android_gqs 2012-12-25  
"这两个属性 如果这两个属性设置的和真实手机的不一样时,就会报上面的错误 很是郁闷 "
这句话什么意思?难道这两个属性是固定的吗
4 楼 lipeng88213 2010-12-08  
yuchttp 写道
private final class MyPictureCallback implements PictureCallback{ 
        private String name = "pic"; 
        public void onPictureTaken(byte[] data, Camera camera) { 
      
     }
         
    } 
在这个函数里面 data.lenth的值为0,可能是什么原因导致的.

看看 按键事件是否捕获到了
3 楼 yuchttp 2010-12-08  
private final class MyPictureCallback implements PictureCallback{ 
        private String name = "pic"; 
        public void onPictureTaken(byte[] data, Camera camera) { 
      
     }
         
    } 
在这个函数里面 data.lenth的值为0,可能是什么原因导致的.
2 楼 lipeng88213 2010-12-07  
lenzol 写道
呵呵 顶下 找了好几天 终于找到解决方案了 谢谢

呵呵 共同进步 不用谢
1 楼 lenzol 2010-12-07  
呵呵 顶下 找了好几天 终于找到解决方案了 谢谢

相关推荐

    node-v11.8.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    C语言期末大作业之图书信息管理系统实现-基于Dev-C++实现.zip

    c语言期末大作业 C语言期末大作业之图书信息管理系统实现_基于Dev-C++实现

    node-v8.16.2-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    爬虫selenium需求geckodriver

    爬虫selenium最新版本缺少的,快速拿去使用。

    毕业设计基于 YOLOv8 和 LPRNet 的车牌识别系统python源码+模型.zip

    1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。

    node-v9.6.1-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v10.18.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于matlab实现的K均值聚类的图像分割,灰度图像分割案例,真彩图像分割案例.rar

    基于matlab实现的K均值聚类的图像分割,灰度图像分割案例,真彩图像分割案例.rar

    基于RFID固定资产管理系统设计与实现毕业论文(28页).docx

    基于RFID固定资产管理系统设计与实现毕业论文(28页).docx

    瓦尔特弗兰德张力计WF-TC系列说明书 WF-TC皮带张力测量仪

    瓦尔特弗兰德张力计WF-TC系列说明书

    分地区按行业分城镇非私营单位就业人员平均工资(2022年).xls

    数据来源:中国人口与就业统计NJ-2023版

    数据更新至2020年分地区新增发电装机容量(太阳能发电).xls

    数据来源:中国电力统计NJ-2021版

    (更新至2022年)全国镇分年龄、性别的人口数.xls

    数据来源:中国人口与就业统计NJ-2023版

    node-v8.8.1-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v10.18.1-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    数据更新至2020年分地区单机6000千瓦及以上 火力发电机组分类情况(20至不足30万千瓦).xls

    数据来源:中国电力统计NJ-2021版

    数据更新至2020年电网建设 累计新增能力.xls

    数据来源:中国电力统计NJ-2021版

    TCN-02N-KT32S系列 普通开关型 使用说明书

    TCN-02N-KT32S系列 普通开关型 使用说明书

    毕业论文-基于JSP的个人通讯录管理系统设计与实现.docx

    毕业论文-基于JSP的个人通讯录管理系统设计与实现.docx

    SIMATIC-WinCC-Runtime-Professional-V19安装包-链接地址.txt

    SIMATIC_WinCC_Runtime_Professional_V19安装包_链接地址

Global site tag (gtag.js) - Google Analytics