Я разрабатываю мобильное приложение с cordova/phonegap, и я установил плагин камеры. Я могу открыть камеру и щелкнуть изображение, но после этого произойдет сбой приложения. вот журнал сбоев:
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=34, result=-1, data=null} to activity {com.phonegap.helloworld/com.phonegap.helloworld.CordovaApp}: java.lang.IllegalArgumentException: filename cannot be null
E/AndroidRuntime(22226): at android.app.ActivityThread.deliverResults(ActivityThread.java:3510)
E/AndroidRuntime(22226): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3553)
E/AndroidRuntime(22226): at android.app.ActivityThread.access$1200(ActivityThread.java:165)
E/AndroidRuntime(22226): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1374)
E/AndroidRuntime(22226): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(22226): at android.os.Looper.loop(Looper.java:176)
E/AndroidRuntime(22226): at android.app.ActivityThread.main(ActivityThread.java:5455)
E/AndroidRuntime(22226): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(22226): at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime(22226): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
E/AndroidRuntime(22226): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
E/AndroidRuntime(22226): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(22226): Caused by: java.lang.IllegalArgumentException: filename cannot be null
E/AndroidRuntime(22226): at android.media.ExifInterface.<init>(ExifInterface.java:121)
E/AndroidRuntime(22226): at org.apache.cordova.camera.ExifHelper.createOutFile(ExifHelper.java:66)
E/AndroidRuntime(22226): at org.apache.cordova.camera.CameraLauncher.processResultFromCamera(CameraLauncher.java:430)
E/AndroidRuntime(22226): at org.apache.cordova.camera.CameraLauncher.onActivityResult(CameraLauncher.java:610)
E/AndroidRuntime(22226): at org.apache.cordova.CordovaActivity.onActivityResult(CordovaActivity.java:784)
E/AndroidRuntime(22226): at android.app.Activity.dispatchActivityResult(Activity.java:5563)
E/AndroidRuntime(22226): at android.app.ActivityThread.deliverResults(ActivityThread.java:3506)
E/AndroidRuntime(22226): ... 11 more
который я использовал для открытия камеры:
var pictureSource; // picture source
var destinationType; // sets the format of returned value
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
// alert("ready-----")
pictureSource = navigator.camera.PictureSourceType;
destinationType = navigator.camera.DestinationType;
}
function capturePhoto() {
alert(navigator.camera);
navigator.camera.getPicture(onPhotoDataSuccess, onFail, {
quality: 20,
destinationType: destinationType.FILE_URI,
targetWidth: 200,
targetHeight: 200,
saveToPhotoAlbum: true,
sourceType: pictureSource.CAMERA
});
}
function onPhotoDataSuccess(imageURI) {
// alert("success--");
var smallImage = document.getElementById('smallImage');
smallImage.style.display = 'block';
smallImage.src = imageURI;
// smallImage.src = "data:image/jpeg;base64," + imageData;
}
function onFail(message) {
alert('Failed because: ' + message);
}
Ошибка уже зарегистрирована в Apache Cordova.
Help!!!