You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Zia Sergio (JIRA)" <ji...@apache.org> on 2017/01/09 12:24:59 UTC
[jira] [Updated] (CB-12335) captureVideo() crashes the app when
running to an android 6.0 or 7.0 emulator
[ https://issues.apache.org/jira/browse/CB-12335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zia Sergio updated CB-12335:
----------------------------
Description:
cordova 6.4
cordova android platform 6.0
cordova-media-capture plugin 1.4.1
built : android sdk version 24
When using Android 6.0 emulator :
target Android 6.0 - API Level 23
cpu Intel Atom (x86_64)
front and back camera emulated
memory RAM 1024
VM heap 64
internal storage 16 GiB
SD card 4 GiB
The emulated camera starts recording a video, stops correctly, but crashes the app when validate the captured video.
{code:title=adb logcat trace}
01-09 11:04:55.485 1913 2552 E DatabaseUtils: Writing exception to parcel
01-09 11:04:55.485 1913 2552 E DatabaseUtils: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/video/media/40 from pid=3130, uid=10056 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:605)
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:480)
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider$Transport.query(ContentProvider.java:211)
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:453)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
01-09 11:04:55.487 3130 3189 E AndroidRuntime: Process: com.saipm.dh, PID: 3130
01-09 11:04:55.487 3130 3189 E AndroidRuntime: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/video/media/40 from pid=3130, uid=10056 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1599)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:491)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:434)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.CordovaResourceApi.mapUriToFile(CordovaResourceApi.java:154)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture.createMediaFile(Capture.java:433)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture.onVideoActivityResult(Capture.java:413)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture$1.run(Capture.java:332)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
01-09 11:04:55.488 1630 2026 W ActivityManager: Force finishing activity com.saipm.dh/.MainActivity
{code}
When using Android 7.0 emulator :
target Android 7.0 - API Level 24
cpu Intel Atom (x86_64)
front and back camera emulated
memory RAM 1024
VM heap 64
internal storage 16 GiB
SD card 8 GiB
When captureVideo() is invoked, the emulated camera does not start and the app crashes immediately.
{code:title=adb logcat trace}
01-09 10:40:23.266 1252 1252 V EmulatedCamera_Camera: getCameraInfo
01-09 10:40:23.266 1252 1252 V EmulatedCamera_BaseCamera: getCameraInfo
01-09 10:40:23.291 28517 28534 E AndroidRuntime: FATAL EXCEPTION: Thread-2
01-09 10:40:23.291 28517 28534 E AndroidRuntime: Process: com.android.camera, PID: 28517
01-09 10:40:23.291 28517 28534 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int android.hardware.Camera$Size.width' on a null object reference
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.getDesiredPreviewSize(VideoCamera.java:799)
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.readVideoPreferences(VideoCamera.java:781)
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.-wrap3(VideoCamera.java)
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera$1.run(VideoCamera.java:389)
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at java.lang.Thread.run(Thread.java:761)
01-09 10:40:23.293 1503 1514 W ActivityManager: Force finishing activity com.android.camera/.VideoCamera
01-09 10:40:23.295 1503 1514 W ActivityManager: Force finishing activity com.saipm.dh/.MainActivity
01-09 10:40:23.322 28517 28528 I art : Background sticky concurrent mark sweep GC freed 8683(640KB) AllocSpace objects, 4(80KB) LOS objects, 0% free
{code}
was:
cordova 6.4
cordova android platform 6.0
cordova-media-capture plugin 1.4.1
built : android sdk version 24
When using Android 6.0 emulator :
target Android 6.0 - API Level 23
cpu Intel Atom (x86_64)
front and back camera emulated
memory RAM 1024
VM heap 64
internal storage 16 GiB
SD card 4 GiB
The emulated camera starts to take a video but crashes the app when validate the captured video.
{code:title=adb logcat trace}
01-09 11:04:55.485 1913 2552 E DatabaseUtils: Writing exception to parcel
01-09 11:04:55.485 1913 2552 E DatabaseUtils: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/video/media/40 from pid=3130, uid=10056 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:605)
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:480)
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider$Transport.query(ContentProvider.java:211)
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:453)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
01-09 11:04:55.487 3130 3189 E AndroidRuntime: Process: com.saipm.dh, PID: 3130
01-09 11:04:55.487 3130 3189 E AndroidRuntime: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/video/media/40 from pid=3130, uid=10056 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1599)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:491)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:434)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.CordovaResourceApi.mapUriToFile(CordovaResourceApi.java:154)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture.createMediaFile(Capture.java:433)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture.onVideoActivityResult(Capture.java:413)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture$1.run(Capture.java:332)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
01-09 11:04:55.488 1630 2026 W ActivityManager: Force finishing activity com.saipm.dh/.MainActivity
{code}
When using Android 7.0 emulator :
target Android 7.0 - API Level 24
cpu Intel Atom (x86_64)
front and back camera emulated
memory RAM 1024
VM heap 64
internal storage 16 GiB
SD card 8 GiB
When captureVideo() is invoked, the emulated camera does not start and the app crashes immediately.
{code:title=adb logcat trace}
01-09 10:40:23.266 1252 1252 V EmulatedCamera_Camera: getCameraInfo
01-09 10:40:23.266 1252 1252 V EmulatedCamera_BaseCamera: getCameraInfo
01-09 10:40:23.291 28517 28534 E AndroidRuntime: FATAL EXCEPTION: Thread-2
01-09 10:40:23.291 28517 28534 E AndroidRuntime: Process: com.android.camera, PID: 28517
01-09 10:40:23.291 28517 28534 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int android.hardware.Camera$Size.width' on a null object reference
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.getDesiredPreviewSize(VideoCamera.java:799)
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.readVideoPreferences(VideoCamera.java:781)
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.-wrap3(VideoCamera.java)
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera$1.run(VideoCamera.java:389)
01-09 10:40:23.291 28517 28534 E AndroidRuntime: at java.lang.Thread.run(Thread.java:761)
01-09 10:40:23.293 1503 1514 W ActivityManager: Force finishing activity com.android.camera/.VideoCamera
01-09 10:40:23.295 1503 1514 W ActivityManager: Force finishing activity com.saipm.dh/.MainActivity
01-09 10:40:23.322 28517 28528 I art : Background sticky concurrent mark sweep GC freed 8683(640KB) AllocSpace objects, 4(80KB) LOS objects, 0% free
{code}
> captureVideo() crashes the app when running to an android 6.0 or 7.0 emulator
> -----------------------------------------------------------------------------
>
> Key: CB-12335
> URL: https://issues.apache.org/jira/browse/CB-12335
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin Media Capture
> Reporter: Zia Sergio
>
> cordova 6.4
> cordova android platform 6.0
> cordova-media-capture plugin 1.4.1
> built : android sdk version 24
> When using Android 6.0 emulator :
> target Android 6.0 - API Level 23
> cpu Intel Atom (x86_64)
> front and back camera emulated
> memory RAM 1024
> VM heap 64
> internal storage 16 GiB
> SD card 4 GiB
> The emulated camera starts recording a video, stops correctly, but crashes the app when validate the captured video.
> {code:title=adb logcat trace}
> 01-09 11:04:55.485 1913 2552 E DatabaseUtils: Writing exception to parcel
> 01-09 11:04:55.485 1913 2552 E DatabaseUtils: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/video/media/40 from pid=3130, uid=10056 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
> 01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:605)
> 01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:480)
> 01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProvider$Transport.query(ContentProvider.java:211)
> 01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
> 01-09 11:04:55.485 1913 2552 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:453)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: Process: com.saipm.dh, PID: 3130
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/video/media/40 from pid=3130, uid=10056 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1599)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:491)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:434)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.CordovaResourceApi.mapUriToFile(CordovaResourceApi.java:154)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture.createMediaFile(Capture.java:433)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture.onVideoActivityResult(Capture.java:413)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at org.apache.cordova.mediacapture.Capture$1.run(Capture.java:332)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
> 01-09 11:04:55.487 3130 3189 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
> 01-09 11:04:55.488 1630 2026 W ActivityManager: Force finishing activity com.saipm.dh/.MainActivity
> {code}
> When using Android 7.0 emulator :
> target Android 7.0 - API Level 24
> cpu Intel Atom (x86_64)
> front and back camera emulated
> memory RAM 1024
> VM heap 64
> internal storage 16 GiB
> SD card 8 GiB
> When captureVideo() is invoked, the emulated camera does not start and the app crashes immediately.
> {code:title=adb logcat trace}
> 01-09 10:40:23.266 1252 1252 V EmulatedCamera_Camera: getCameraInfo
> 01-09 10:40:23.266 1252 1252 V EmulatedCamera_BaseCamera: getCameraInfo
> 01-09 10:40:23.291 28517 28534 E AndroidRuntime: FATAL EXCEPTION: Thread-2
> 01-09 10:40:23.291 28517 28534 E AndroidRuntime: Process: com.android.camera, PID: 28517
> 01-09 10:40:23.291 28517 28534 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int android.hardware.Camera$Size.width' on a null object reference
> 01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.getDesiredPreviewSize(VideoCamera.java:799)
> 01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.readVideoPreferences(VideoCamera.java:781)
> 01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera.-wrap3(VideoCamera.java)
> 01-09 10:40:23.291 28517 28534 E AndroidRuntime: at com.android.camera.VideoCamera$1.run(VideoCamera.java:389)
> 01-09 10:40:23.291 28517 28534 E AndroidRuntime: at java.lang.Thread.run(Thread.java:761)
> 01-09 10:40:23.293 1503 1514 W ActivityManager: Force finishing activity com.android.camera/.VideoCamera
> 01-09 10:40:23.295 1503 1514 W ActivityManager: Force finishing activity com.saipm.dh/.MainActivity
> 01-09 10:40:23.322 28517 28528 I art : Background sticky concurrent mark sweep GC freed 8683(640KB) AllocSpace objects, 4(80KB) LOS objects, 0% free
> {code}
--
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