来自docs页面的相机示例在android 2.3.x上失败

来自docs页面的相机示例在android 2.3.x上失败,第1张

概述我正在创建一个用于在Android手机中捕捉照片的phonegap应用程序.它适用于android4.x.但不适用于Android2.3.x.得到这样的错误:抱歉!应用程序AppName(packagename)已意外停止.请再试一次我已经创建了项目,如上所述here并使用完整示例here.我的phonegephtml页面是:<!DOCTYPE

我正在创建一个用于在Android手机中捕捉照片的phonegap应用程序.它适用于androID 4.x.但不适用于AndroID 2.3.x.

得到这样的错误:

抱歉!
应用程序Appname(packagename)已意外停止.请再试一次

我已经创建了项目,如上所述here并使用完整示例here.

我的phonegep HTML页面是:

<!DOCTYPE HTML><HTML><head><Title>Capture Photo</Title><script type="text/JavaScript" charset="utf-8" src="cordova-2.5.0.Js"></script><script type="text/JavaScript" charset="utf-8">var pictureSource;   // picture sourcevar destinationType; // sets the format of returned value // Wait for Cordova to connect with the device//document.addEventListener("deviceready",onDeviceReady,false);// Cordova is ready to be used!//function onDeviceReady() {    pictureSource=navigator.camera.PictureSourceType;    destinationType=navigator.camera.DestinationType;}// Called when a photo is successfully retrIEved//function onPhotoDataSuccess(imageData) {  // Uncomment to vIEw the base64 encoded image data  // console.log(imageData);  // Get image handle  //  var smallimage = document.getElementByID('smallimage');  // UnhIDe image elements  //  smallimage.style.display = 'block';  // Show the captured photo  // The inline CSS rules are used to resize the image  //  smallimage.src = "data:image/jpeg;base64," + imageData;}// Called when a photo is successfully retrIEved//function onPhotoURISuccess(imageURI) {  // Uncomment to vIEw the image file URI   // console.log(imageURI);  // Get image handle  //  var largeImage = document.getElementByID('largeImage');  // UnhIDe image elements  //  largeImage.style.display = 'block';  // Show the captured photo  // The inline CSS rules are used to resize the image  //  largeImage.src = imageURI;}// A button will call this function//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 });}// A button will call this function//function capturePhotoEdit() {  // Take picture using device camera, allow edit, and retrIEve image as base64-encoded string    navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true,    destinationType: destinationType.DATA_URL });}// A button will call this function//function getPhoto(source) {  // RetrIEve image file location from specifIEd source  navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,     destinationType: destinationType.file_URI,    sourceType: source });}// Called if something bad happens.// function onFail(message) {  alert('Failed because: ' + message);}</script></head><body><button onclick="capturePhoto();">Capture Photo</button> <br><button onclick="capturePhotoEdit();">Capture Editable Photo</button> <br><button onclick="getPhoto(pictureSource.PHOTOliBRARY);">From Photo library</button><br><button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br><img  ID="smallimage" src="" /><img  ID="largeImage" src="" /></body></HTML>

错误日志:

05-16 14:51:38.249: E/AndroIDRuntime(13459): FATAL EXCEPTION: main05-16 14:51:38.249: E/AndroIDRuntime(13459): java.lang.RuntimeException: Unable to resume activity {com.name/package}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=34, result=-1, data=Intent { (has extras) }} to activity {com.name/com.name.namedemo}: java.lang.NullPointerException05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread.performResumeActivity(ActivityThread.java:2120)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1668)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread.access00(ActivityThread.java:117)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:931)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.os.Handler.dispatchMessage(Handler.java:99)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.os.Looper.loop(Looper.java:130)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread.main(ActivityThread.java:3683)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at java.lang.reflect.Method.invokeNative(Native Method)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at java.lang.reflect.Method.invoke(Method.java:507)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:875)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:633)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at dalvik.system.NativeStart.main(Native Method)    05-16 14:51:38.249: E/AndroIDRuntime(13459): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=34, result=-1, data=Intent { (has extras) }} to activity {com.name/com.name.namedemo}: java.lang.NullPointerException    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread.deliverResults(ActivityThread.java:2532)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread.performResumeActivity(ActivityThread.java:2107)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    ... 12 more    05-16 14:51:38.249: E/AndroIDRuntime(13459): Caused by: java.lang.NullPointerException    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at org.apache.cordova.DroIDGap.onActivityResult(DroIDGap.java:849)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.Activity.dispatchActivityResult(Activity.java:3908)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    at androID.app.ActivityThread.deliverResults(ActivityThread.java:2528)    05-16 14:51:38.249: E/AndroIDRuntime(13459):    ... 13 more    05-16 14:51:39.039: W/webcore(13459): Can't get the vIEwWIDth after the first layout

解决方法:

默认的Phonegap(Cordova)Camera Plugin调用本机摄像头,这使得AndroID垃圾收集器可以杀死后台应用程序.这个插件可以避免你的应用程序进入后台并被垃圾收集器和其他应用程序杀死.我们使用了Phonegap源代码并对其进行了修改以避免此问题.此插件仅适用于文件URI.

Foreground Camera Plugin for Phonegap

总结

以上是内存溢出为你收集整理的来自docs页面的相机示例在android 2.3.x上失败全部内容,希望文章能够帮你解决来自docs页面的相机示例在android 2.3.x上失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1117805.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存