我开发了一个应用程序,可以在打卡时拍摄照片.它在Acer选项卡上运行良好(捕获图像并保存在SD卡中).现在,当我在三星galaxy(Android-4.1.1)中运行相同的应用程序时,我的应用程序正在获得“不幸的应用程序已经停止”,当点击打卡.我的代码在这里..
// ClockIn functionalityclockin_btn.setonClickListener(new VIEw.OnClickListener() { public voID onClick(VIEw v) { clockin_btn.setEnabled(false); camera.stopPrevIEw(); capturePhoto(0); // showing one error here in log cat prevIEwing = false; clockin_label.setText(String.format(session_msg,logout_seconds)); ticker.setBase(SystemClock.elapsedRealtime()); ticker.start(); } });private String capturePhoto(int clockInOutMode) { final int mode = clockInOutMode; img_file = String.format("%d.jpg", System.currentTimeMillis()); Camera.PictureCallback mCall = new Camera.PictureCallback() { public voID onPictureTaken(byte[] data, Camera camera) { try { Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); file file = new file(Constants.EMP_img_LOCATION, img_file); fileOutputStream fOut = new fileOutputStream(file); mBitmap.compress(Bitmap.CompressFormat.JPEG, 80, fOut); fOut.flush(); fOut.close(); if ( mode == 0) { clockIn(img_file); } else { clockOut(img_file); } } catch (fileNotFoundException e) { e.printstacktrace(); } catch (IOException e) { e.printstacktrace(); } } }; Camera.Parameters cameraParams = camera.getParameters(); List<Camera.Size> sizes = cameraParams.getSupportedPictureSizes(); Camera.Size result = null; for (int i=0;i<sizes.size();i++){ result = (Size) sizes.get(i); Log.i("PictureSize", "Supported Size.WIDth: " + result.wIDth + "height: " +result.height); } cameraParams.setPictureSize(640, 480); camera.setParameters(cameraParams); System.gc(); camera.setPrevIEwCallback(null); camera.takePicture(null, null, mCall); // showing one error here in logcat return img_file;}
我的Logcat显示为:
03-27 04:52:19.273: E/AndroIDRuntime(4105): FATAL EXCEPTION: main03-27 04:52:19.273: E/AndroIDRuntime(4105): java.lang.RuntimeException: setParameters Failed03-27 04:52:19.273: E/AndroIDRuntime(4105): at androID.harDWare.Camera.native_setParameters(Native Method)03-27 04:52:19.273: E/AndroIDRuntime(4105): at androID.harDWare.Camera.setParameters(Camera.java:1452)
和我的androID.manifest.xml文件:
<uses-feature androID:name="androID.harDWare.camera" /> <uses-feature androID:name="androID.harDWare.camera.autofocus" /> <used-feature androID:name="androID.harDWare.location" /> <used-feature androID:name="androID.harDWare.camera.setParameters" />
解决方法:
在调用takePicture方法camera.takePicture(null,null,mCall)之前调用startPrevIEw方法;我使用的startPrevIEw方法是
private voID startPrevIEw() { if (cameraConfigured && camera!=null) { camera.startPrevIEw(); inPrevIEw=true; } }
通过这个我解决了我的问题…它可能会帮助你们.
总结以上是内存溢出为你收集整理的java.Lang.RuntimeException,setParameters在android(4.1.1)版本中失败全部内容,希望文章能够帮你解决java.Lang.RuntimeException,setParameters在android(4.1.1)版本中失败所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)