Phonegap | Android 4-应用程序在从PHOTOLIBRARY拍照时有时会崩溃

Phonegap | Android 4-应用程序在从PHOTOLIBRARY拍照时有时会崩溃,android,cordova,photolibrary,Android,Cordova,Photolibrary,我使用以下代码在Phonegap(cordova 1.9.0)中从图库或相机获取照片,并将其包含在页面中: function getPhotoByGallery() { navigator.camera.getPicture(onPhotoSuccess, onFail, { quality : 50, destinationType: navigator.camera.DestinationType.FILE_URI, sourceTyp

我使用以下代码在Phonegap(cordova 1.9.0)中从图库或相机获取照片,并将其包含在页面中:

function getPhotoByGallery() {
    navigator.camera.getPicture(onPhotoSuccess, onFail, {
        quality : 50,
        destinationType: navigator.camera.DestinationType.FILE_URI,
        sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY
    });
}

function getPhotoByCamera() {
    navigator.camera.getPicture(onPhotoSuccess, onFail, {
        quality : 50
    });
}

function onPhotoSuccess(data) {
    var viewport = document.getElementById('viewport');
    //console.log(data);
    viewport.style.display = "";
    document.getElementById("test_img").src = data;
}
测试设备:带安卓4的三星Galaxy S3。用相机拍照片没问题。但是,当我多次尝试从图库中拍摄照片时,该应用程序经常崩溃(没有任何有用的错误),并非一直如此,而是经常在不同的周期中崩溃。(有时在第三次从库中拾取图像时,有时在第五次,依此类推)


我不知道问题的原因是什么,因为应用程序没有给我任何关于它遇到的问题的反馈…

设备是否有问题?如果是这样的话,您可以使用logcat程序(如alogcat)尝试并提供帮助。

我有两天的时间遇到同样的问题,直到我发现您应该有权获取设备中的图像文件。默认情况下,没有返回图像的权限,因此图像返回null,应用程序崩溃

如果您在XCode中使用Cordova/PhoneGap,那么还应该在www文件夹中创建Config.xml文件,并授予访问图像文件的权限

<feature name="http://api.phonegap.com/1.0/device" />
<feature name="http://api.phonegap.com/1.0/battery"/>
<feature name="http://api.phonegap.com/1.0/camera"/>
<feature name="http://api.phonegap.com/1.0/contacts"/>
<feature name="http://api.phonegap.com/1.0/file"/>
<feature name="http://api.phonegap.com/1.0/geolocation"/>
<feature name="http://api.phonegap.com/1.0/media"/>
<feature name="http://api.phonegap.com/1.0/network"/>
<feature name="http://api.phonegap.com/1.0/notification"/>

如果您使用的是Android,那么请对AndroidManifest.xml文件授予权限

您可以在此处找到config.xml文件的所有内容:


Cordova/PhoneGap没有问题。

我突然发现,在Android 4(三星Galaxy III)和PhoneGap 2.0(通过PhoneGap构建)上运行的应用程序也有同样的问题

作为补充,只需要以下权限:

<feature name="http://api.phonegap.com/1.0/camera"/>
<feature name="http://api.phonegap.com/1.0/file"/>

我已经设置好了(它在安卓2.2手机上工作)

更新
经过进一步测试,问题是众所周知的,当Android需要更多内存时,例如当它打开网络摄像头时,它会关闭打开的应用程序。

你不需要根设备来使用logcat,它是Android SDK的一部分。啊,我只在设备上使用过它,我认为你需要根设备。啊!我完全忘记了,您需要首先单击“设备”选项卡中的设备,以查看任何logcat输出。。。谢谢你的回答。你使用的是什么版本的Phonegap?我已经为即将到来的2.0.0修复了很多摄像头问题。另外,运行“adb logcat”查看操作系统的错误。