2016-11-21 52 views
0

当我用相机按钮应启动相机我的Android设备上它给我这个错误铬检查:离子2摄像头,使应用程序崩溃

文件:///存储/模拟/ 0 /安卓/数据/ io.ionic.starter /缓存/ .Pic.jpg通过ClipData.Item.getUri()

我无能,无法找到它anywere暴露超过应用..

所有帮助表示赞赏!

Cordova CLI: 6.4.0 
Ionic Framework Version: 2.0.0-rc.3 
Ionic CLI Version: 2.1.12 
Ionic App Lib Version: 2.1.7 
Ionic App Scripts Version: 0.0.45 
ios-deploy version: Not installed 
ios-sim version: Not installed 
OS: Windows 10 
Node Version: v6.9.1 
Xcode version: Not installed 

回答

0

我这个选择呢:在Android设备上运行良好

doCamera() { 
     Camera.getPicture({ 
      destinationType: Camera.DestinationType.FILE_URI, 
      saveToPhotoAlbum: true, 
      mediaType: Camera.MediaType.PICTURE, 
     }).then((imageURI) => { 
      this.changeImageString(imageURI); 
     }, (err) => { 
      console.log("Error: " + err); 
     }); 

} 

看到enter link description here

离子信息:

Cordova CLI: 6.4.0 
Ionic Framework Version: 2.0.0-rc.1 
Ionic CLI Version: 2.1.8 
Ionic App Lib Version: 2.1.4 
Ionic App Scripts Version: 0.0.38 
Node Version: v6.8.1 
+0

我试了一下,应该工作的其他教程,但它仍然崩溃。我开始认为它与代码无关.. –

+0

尝试blanc项目,它必须工作。 – Lerb90

+0

这将无法正常工作错误发生在camera.getpicture解析之前,所以你永远不会有机会像这样处理imageURI。 –

1

得到这个解决更新cordova platform的Android是6.1 .1然后更新相机插件。

检查Android科尔多瓦平台版本:

cordova platform ls

如果Android是6.0 <,那么你需要更新和更新的版本添加到您的项目,这应该工作:

cordova platform update android

但在我的情况下,它不会更新android平台版本,所以我不得不明确安装6.1.1

cordova platform add [email protected] --save

然后将其更新到6.1.1,然后我删除,并添加科尔多瓦相机插件到我的项目:

cordova plugin remove cordova-plugin-camera --save

然后

cordova plugin add cordova-plugin-camera --save

向上到目前为止,cordova-plugin-camera被安装,我可以在我的config.xml中看到它

我已经部署我的应用程序到设备再次ionic run android它的工作。

5

传递宽度和高度解决了我的崩溃问题。

const options: CameraOptions = { 
     quality: 100, 
     targetWidth: 100, 
     targetHeight: 100, 
     destinationType: Camera.DestinationType.DATA_URL, 
     encodingType: Camera.EncodingType.JPEG, 
     mediaType: Camera.MediaType.PICTURE 
    } 

    Camera.getPicture(options).then((imageData) => { 
     // imageData is either a base64 encoded string or a file URI 
     // If it's base64: 
     this.idImage = imageData; 
     this.idImageSelected = 'data:image/jpeg;base64,' + imageData; 
    }, (err) => { 
     // Handle error 
    }); 
    } 
+0

它的工作!这应该记录。 –

+0

它也适用于我。谢谢。 – Meysam

相关问题