来自库的navigator.camera.getPicture错误“无法创建位图”

时间:2016-03-03 17:36:37

标签: android cordova

当我尝试从android中的图库中获取一个图像时,我收到错误“无法创建位图”。 我看到了日志,我发现了这个错误: / CameraLauncher(16616):文件locaton是:/ storage / emulated / 0 / WhatsApp / Media / WhatsApp Images / IMG-20160303-WA0002.jpg W / System.err(16616):java.io.FileNotFoundException:没有这样的文件或目录

我认为错误是由空白生成的。

我使用的是cordova cli 6.0,这是我的代码:

            var options = {
                destinationType: Camera.DestinationType.FILE_URI,
                sourceType: navigator.camera.PictureSourceType.SAVEDPHOTOALBUM,
                quality: 30,
                targetWidth: 300,
                targetHeight: 300
            };

            var q = $q.defer();

            navigator.camera.getPicture(function (result) {
                // Do any magic you need
                q.resolve(result);
            }, function (err) {
                q.reject(err);
            }, options);

            return q.promise;

如何修复此错误?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是一篇旧帖子,但无论如何我都会回答。

我遇到了类似的问题,但对我来说,在尝试保存实际图像时,GetPicture之后发生了错误。正如您所怀疑的,它是" WhatsApp图像"这会导致问题,所以我用'%20'替换空格。 URI编码可能是更好的选择。请参阅下面第3行的.replace

$cordovaCamera.getPicture(options).then(function (imageUrl) {
if (ionic.Platform.isAndroid()) {
  imageUrl = imageUrl.replace(" ", "%20");
  AppFileService.storeWallImage(imageUrl);
  resolve({
    img: imageUrl
  });
});