Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – PhoneGap:应用程序崩溃拍摄肖像照片大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用jQuery Mobile和PhoneGap创建一个应用程序,允许用户拍照,在屏幕上查看,然后将其上传到服务器应用程序,最终将其发布到网站上.

如果我在横向模式下拍摄照片,但在拍摄人像照片时会崩溃应用程序,这种效果很好.正如您从下面的代码片段中看到的那样,我使用了correctOrientation参数来尝试在拍摄照片后定位照片.如果没有此参数,应用程序不会崩溃,但是在显示时照片的方向错误.

现在我正在索尼XPERIA安卓手机上测试这个.

这是负责这项工作的代码.

function onPhotoFail(messagE) {
    alert('Failed because: ' + messagE);
}

function onPhotosuccess(imageURI) {             
    var $image = $("img#upload-image");
$image.attr("src",imageURI);
}

function capturePhoto() {
navigator.camera.getPicture(onPhotosuccess,onPhotoFail,{ quality: 50,desTinationType: Camera.DesTinationType.FILE_URI,correctOrientation: true });     
}

这是堆栈跟踪:

E/AndroidRuntime(31760): FATAL EXCEPTION: main
E/AndroidRuntime(31760): java.lang.outOfMemoryError: bitmap size exceeds VM budget
E/AndroidRuntime(31760):        at android.graphics.bitmap.nativeCreate(Native Method)
E/AndroidRuntime(31760):        at android.graphics.bitmap.createBitmap(Bitmap.java:477)
E/AndroidRuntime(31760):        at android.graphics.bitmap.createBitmap(Bitmap.java:444)
E/AndroidRuntime(31760):        at org.apache.cordova.CameraLauncher.getRotatedBitmap(CameraLauncher.java:483)
E/AndroidRuntime(31760):        at org.apache.cordova.CameraLauncher.onActivityResult(CameraLauncher.java:326)
E/AndroidRuntime(31760):        at org.apache.cordova.DroidGap.onActivityResult(DroidGap.java:823)
E/AndroidRuntime(31760):        at android.app.Activity.dispatchActivityResult(Activity.java:3908)
E/AndroidRuntime(31760):        at android.app.ActivityThread.deliverResults(ActivityThread.java:2549)
E/AndroidRuntime(31760):        at android.app.ActivityThread.handleSendResult(ActivityThread.java:2595)
E/AndroidRuntime(31760):        at android.app.ActivityThread.access$2000(ActivityThread.java:121)
E/AndroidRuntime(31760):        at android.app.ActivityThread$H.handlemessage(ActivityThread.java:973)
E/AndroidRuntime(31760):        at android.os.Handler.dispatchmessage(Handler.java:99)
E/AndroidRuntime(31760):        at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(31760):        at android.app.ActivityThread.main(ActivityThread.java:3701)
E/AndroidRuntime(31760):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(31760):        at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(31760):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
E/AndroidRuntime(31760):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
E/AndroidRuntime(31760):        at dalvik.system.NativeStart.main(Native Method)

做了一些搜索,我没有看到任何人有这个问题.任何帮助表示赞赏

解决方法

我必须看到你的堆栈跟踪,但它可能是一个OutOfMemoryException. Android非常糟糕地处理图像处理.它基本上需要将整个图像加载到每个像素为4个字节的内存中,这对于许多现代手机摄像头来说意味着高达40兆字节.

我现在唯一的建议是尝试将质量切换为100.我知道这听起来有点反直觉,但它可以防止在后台进行同样多的处理.

您可以阅读我的博客文章,谈论相机的一些问题:

http://simonmacdonald.blogspot.ca/2012/07/change-to-camera-code-in-phonegap-190.html

此外,如果我能看到堆栈跟踪,它会有所帮助.

大佬总结

以上是大佬教程为你收集整理的android – PhoneGap:应用程序崩溃拍摄肖像照片全部内容,希望文章能够帮你解决android – PhoneGap:应用程序崩溃拍摄肖像照片所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。