You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "jcesarmobile (JIRA)" <ji...@apache.org> on 2018/11/21 00:13:00 UTC

[jira] [Closed] (CB-11034) Camera.getPicture -Handle of OutOfMemoryError gracefully

     [ https://issues.apache.org/jira/browse/CB-11034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

jcesarmobile closed CB-11034.
-----------------------------
    Resolution: Fixed

Closing as there are a few out of memory catchs now and this might be fixed, if not report a new issue on github https://github.com/apache/cordova-plugin-camera/issues

> Camera.getPicture -Handle of OutOfMemoryError gracefully
> --------------------------------------------------------
>
>                 Key: CB-11034
>                 URL: https://issues.apache.org/jira/browse/CB-11034
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-plugin-camera
>    Affects Versions: 2.1.1
>         Environment: Android
>            Reporter: Dagfinn Parnas
>            Priority: Major
>              Labels: Android, mustfix, triaged
>
> We have an app for which we are dependent on using DATA_URL.
> On some older phones (Samsung SII Android 4.1), we have experienced sporadic OutOfMemoryError exceptions when taking a picture. 
> When this occurs the app crashes since the camera plugin doesn't explicitly handle the java.lang.OutOfMemoryError which is thrown. 
> It's ok that the OutOfMemoryError appear, but the apps should be able to handle it gracefully and not just have the app crash. 
> Example stack trace from an uncaught OutOfMemoryError 
> {code}
> 04-06 09:51:55.155: E/dalvikvm-heap(22744): Out of memory on a 31961104-byte allocation.
> 04-06 09:51:55.155: I/dalvikvm(22744):   at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
> 04-06 09:51:55.160: I/dalvikvm(22744):   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:652)
> 04-06 09:51:55.160: I/dalvikvm(22744):   at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:724)
> 04-06 09:51:55.160: I/dalvikvm(22744):   at org.apache.cordova.camera.CameraLauncher.getScaledBitmap(CameraLauncher.java:916)
> 04-06 09:51:55.160: I/dalvikvm(22744):   at org.apache.cordova.camera.CameraLauncher.processResultFromCamera(CameraLauncher.java:454)
> 04-06 09:51:55.160: I/dalvikvm(22744):   at org.apache.cordova.camera.CameraLauncher.onActivityResult(CameraLauncher.java:753)
> 04-06 09:51:55.160: I/dalvikvm(22744):   at org.apache.cordova.CordovaInterfaceImpl.onActivityResult(CordovaInterfaceImpl.java:120)
> {code}
> In the example above, CameraLauncher.getScaledBitmap doesn't catch the java.lang.OutOfMemoryError and the app crashes. The same situation can occur in CameraLauncher.processPicture (which has a try catch with only exception)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org