You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Dagfinn Parnas (JIRA)" <ji...@apache.org> on 2016/04/07 12:27:25 UTC

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

Dagfinn Parnas created CB-11034:
-----------------------------------

             Summary: 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: Plugin Camera
    Affects Versions: 2.1.1
         Environment: Android
            Reporter: Dagfinn Parnas


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
(v6.3.4#6332)

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