2016-12-27 66 views
0

我正在開發一個應用程序,應該打開camera或從照片庫中選擇一張圖片,問題是如果我測試應用程序build with ionic(so android-debug.apk)沒有問題但如果我測試signed apk(我簽署的apk與android studio),如果我想從照片庫中選擇一個圖像沒有問題,但如果我想打開相機應用程序關閉並返回消息「應用程序」的應用程序名稱「被打斷了」。 我只有在Android上的這個問題,在iOS上它工作正常。 我試圖在谷歌搜索,但我還沒有找到任何東西,和三個星期前我已經發布了相同的應用程序具有相同的功能和相同的代碼,它的工作原理。離子相機崩潰android

這是我開啓相機 CODE:

function capturePhoto() { 
     // Take picture using device camera and retrieve image as base64-encoded string 
     /*navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, 
     destinationType: destinationType.DATA_URL }); */ 


     var srcType = Camera.PictureSourceType.CAMERA; 
     var options = setOptions(srcType); 
     var func = createNewFileEntry; 

     /*if (selection == "camera-thmb") { 
      options.targetHeight = 100; 
      options.targetWidth = 100; 
     }*/ 

     navigator.camera.getPicture(function cameraSuccess(imageUri) { 

      // Do something 

     }, function cameraError(error) { 
      console.debug("Unable to obtain picture: " + error, "app"); 

     }, options); 

    } 

我怎樣才能解決這個問題?

感謝的

+0

把你的代碼或創建小提琴檢查什麼確切的問題是。 – Dixit

+0

好吧,現在我編輯問題@ dkc007 – Edoardo

+0

我編輯了問題@ dkc007 – Edoardo

回答

0

總是嘗試。因爲您在不同的控制器使用它在這裏使用服務,

.factory('imageCapt', function($q, $cordovaCamera) { 
    var image_url = ""; 
    var _ChoosePhoto = function() { 
        var options = { 
        quality: 75, 
        destinationType: Camera.DestinationType.DATA_URL, 
        sourceType: Camera.PictureSourceType.PHOTOLIBRARY, 
        allowEdit: true, 
        encodingType: Camera.EncodingType.JPEG, 
        targetWidth: 300, 
        targetHeight: 300, 
        popoverOptions: CameraPopoverOptions, 
        saveToPhotoAlbum: false 
       }; 
        return $cordovaCamera.getPicture(options).then(function (imageData) { 
         image_url = "data:image/jpeg;base64," + imageData; 
         return image_url; 
        }, function (err) { 
         alert(err); 
         // An error occured. Show a message to the user 
        }); 
       }; 
    var _GetImageUrl= function(){ 
      var options = { 
        quality: 50, 
        destinationType: Camera.DestinationType.DATA_URL, 
        sourceType: Camera.PictureSourceType.CAMERA, 
        allowEdit: true, 
        encodingType: Camera.EncodingType.JPEG, 
        targetWidth: 100, 
        targetHeight: 100, 
        popoverOptions: CameraPopoverOptions, 
        saveToPhotoAlbum: true 
       }; 

        return $cordovaCamera.getPicture(options).then(function (imageData) { 
         image_url ="data:image/jpeg;base64,"+ imageData;     
        return image_url; 
        }, function (err) { 
         alert(err); 
         // An error occured. Show a message to the user 
        }); 
     // $ionicLoading.show({content: 'Loading', animation: 'fade-in',showBackdrop: true, maxWidth: 200,showDelay: 0}); 

    }; 
    return { 
     GetImageUrl : _GetImageUrl, 
     ChoosePhoto : _ChoosePhoto, 
    }; 

}) 

注意:如果你不希望使用的服務,然後在正確使用你的選項控制器像

var options = { 
       quality: 50, 
       destinationType: Camera.DestinationType.DATA_URL, 
       sourceType: Camera.PictureSourceType.CAMERA, 
       allowEdit: true, 
       encodingType: Camera.EncodingType.JPEG, 
       targetWidth: 100, 
       targetHeight: 100, 
       popoverOptions: CameraPopoverOptions, 
       saveToPhotoAlbum: true 
      }; 
+0

謝謝,但它沒有解決我的問題 – Edoardo

+0

檢查您的控制檯的確切的錯誤。 – Anuj

+0

我在控制檯中沒有錯誤,當我運行android-debug.apk但是當我運行已簽名的apk應用程序崩潰並且與已簽名的apk我沒有使用Chrome控制檯 – Edoardo