java.Lang.RuntimeException,setParameters在android(4.1.1)版本中失败

java.Lang.RuntimeException,setParameters在android(4.1.1)版本中失败,第1张

概述我开发了一个应用程序,可以在打卡时拍摄照片.它在Acer选项卡上运行良好(捕获图像并保存在SD卡中).现在,当我在三星Galaxy(Android-4.1.1)中运行相同的应用程序时,我的应用程序正在获得“不幸的应用程序已经停止”,当点击打卡.我的代码在这里..//ClockInfunctionalityclockin_b

我开发了一个应用程序,可以在打卡时拍摄照片.它在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)版本中失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1117780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存