android - navigator.camera.getPicture 来自图库错误 "Unable to create bitmap"

标签 android cordova

当我尝试从 android 中的图库中获取一张图像时,出现“无法创建位图”错误。 我看过日志,发现这个错误: /CameraLauncher(16616):文件位置为:/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;

如何解决这个错误?

谢谢!

最佳答案

这是一个旧帖子,但我还是会回答的。

我有一个类似的问题,但对我来说,在尝试保存实际图像时,错误发生在 GetPicture 之后。如您所料,是“WhatsApp Images”中的空格导致了问题,因此我将空格替换为“%20”。 URI 编码可能是更好的选择。请参阅下面第 3 行的 .replace

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

关于android - navigator.camera.getPicture 来自图库错误 "Unable to create bitmap",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35779128/

相关文章:

android - 如何使用 Stitch 在 MongoDB Atlas 上执行 "Distinct"MongoDB 查询

android - 如何在 Android 中注册 sleep 事件?

javascript - Phonegap Facebook 连接插件设置

ios - iframe 内的 Phonegap/Cordova ios 外部链接无法在 safari 中打开

ios - 由于协议(protocol)不匹配,Cordova 包装器中的 Angular Leaflet 不加载图 block

javascript - 使用纯 JS 单击时从 li 元素获取文本和 id

java - 无法将可打包数组列表发送到服务类

android - 启用GPS时如何调用方法

android - 如何制作双向 RecyclerView?

javascript - Emberjs div 不会触发点击事件操作