2016-11-21 54 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

相關問題