nit*_*oel 11 android phonegap-plugins cordova
我正在开发一个带有cordova/phonegap的移动应用程序,我已经安装了Camera插件.我可以打开相机并单击图像,但在该应用程序崩溃后.这是崩溃日志:
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
Run Code Online (Sandbox Code Playgroud)
我用来打开相机的代码是:
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);
}
Run Code Online (Sandbox Code Playgroud)
该错误已经记录在Apache Cordova中.
救命!!!
小智 1
请更改您的目的地类型:
destinationType: destinationType.FILE_URI
Run Code Online (Sandbox Code Playgroud)
到
destinationType: Camera.DestinationType.FILE_URI
Run Code Online (Sandbox Code Playgroud)
如果您需要将其作为 Base64 编码图像,请将目标类型更改为:
destinationType: Camera.DestinationType.DATA_URL
Run Code Online (Sandbox Code Playgroud)
还要确保您已在清单文件中添加了写入外部存储权限。
| 归档时间: |
|
| 查看次数: |
4551 次 |
| 最近记录: |