Ionic 2 Android 相机/画廊崩溃

Posted

技术标签:

【中文标题】Ionic 2 Android 相机/画廊崩溃【英文标题】:Ionic 2 Android Camera/Gallery Crash 【发布时间】:2017-06-18 14:41:39 【问题描述】:

由于某种原因,每当我尝试在 android 设备上拍照或选择照片时,Ionic 2 和“cordova-plugin-camera”都会崩溃。我读过这可能是由于内存不足,但我的设备有 7gbs 可用空间。我还读到它可能是我设置为 DATA_URL 并更改为 FILE_URI 的“destinationType”,但仍然发现相同的错误。

如果能在解决此错误方面提供任何帮助,我将不胜感激,因为它在 ios 上完美运行。

这是我的代码:

  openCamera() 
    Camera.getPicture(
      destinationType: Camera.DestinationType.FILE_URI,
      encodingType: Camera.EncodingType.JPEG,
      saveToPhotoAlbum: true,
      quality: 50,
      correctOrientation: true
    ).then((imageData) => 
      // imageData is either a base64 encoded string or a file URI
      // If it's base64:
      this.issue.image = 'data:image/jpeg;base64,' + imageData;
    , (err) => 
      console.log(err);
    );
  

  openGallery() 
    let cameraOptions = 
      sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
      destinationType: 1,
      quality: 50,
      encodingType: Camera.EncodingType.JPEG,
      correctOrientation: true
    ;

    Camera.getPicture(cameraOptions)
      .then((file_uri) => 
          this.issue.image = 'data:image/jpeg;base64,' + file_uri;
      , (err) => 
        console.log(err)
      );
  

【问题讨论】:

【参考方案1】:

我认为这不应该是Camera.DestinationType.FILE_URI,因为您在将其分配给图像元素时使用的是data:image/jpeg;base64

【讨论】:

是的,我绝对不应该。我之前将它设置为 DATA_URL,这是我通常保留的。虽然不是问题。我什至无法打开承诺,因为在那之前应用程序崩溃了。

以上是关于Ionic 2 Android 相机/画廊崩溃的主要内容,如果未能解决你的问题,请参考以下文章

从android中的画廊和相机中捕获图像

android使用片段从相机或画廊获取照片[重复]

Android - 相机和画廊意图后的裁剪给出了奇怪的结果

拍摄照片后,Ionic cordova 相机插件间歇性崩溃(使用 Firebase 图像上传)

如何在特定的imageView上上传特定的图像点击来自android中的画廊和相机

从android中的意图选择器中选择选项(相机或画廊)后请求权限