android – PhoneGap:应用程序崩溃拍摄肖像照片

android – PhoneGap:应用程序崩溃拍摄肖像照片,第1张

概述我正在使用jQuery Mobile和PhoneGap创建一个应用程序,允许用户拍照,在屏幕上查看,然后将其上传到服务器应用程序,最终将其发布到网站上. 如果我在横向模式下拍摄照片,但在拍摄人像照片时会崩溃应用程序,这种效果很好.正如您从下面的代码片段中看到的那样,我使用了correctOrientation参数来尝试在拍摄照片后定位照片.如果没有此参数,应用程序不会崩溃,但是在显示时照片的方向错 我正在使用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: mainE/AndroIDRuntime(31760): java.lang.OutOfMemoryError: bitmap size exceeds VM budgetE/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.access00(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:应用程序崩溃拍摄肖像照片所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1126745.html

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

发表评论

登录后才能评论

评论列表(0条)

保存