Phonegap Capture不适用于果冻豆

时间:2013-02-14 06:36:36

标签: android cordova android-4.2-jelly-bean

我正面临有关Phonegap Capture图像功能的问题。虽然此问题曾多次被问过,但我没有找到解决办法。所以我再次问这里。 我正在尝试捕获图像并使用phonegap在我的HTML页面中设置它。 这是我的代码:

function captureImage() {
navigator.device.capture.captureImage(captureSuccess, captureError, {limit: 1,
quality:100,
correctOrientation: true,
destinationType : Camera.DestinationType.FILE_URI, 
targetWidth: 800,
targetHeight: 800,
saveToPhotoAlbum: true });
}

function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
       }       
}

function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
$("#errorNot1").fadeIn();
$("#errorMsg").text("Unable to capture image.");
}

function uploadFile(mediaFile) {
$(".contentdiv").css("display","none");
$("#takePhoto").css("display","block");
$("#fromLib").css("display","none");
path = mediaFile.fullPath,
name = mediaFile.name;
$('.largeImage').attr("src",path);
}

问题是,它的起始相机和拍摄图像。但是当尝试在HTML页面中设置时,应用程序崩溃了。

这是我的logcat输出(我的sdk没有更新,我正在尝试使用Android 4.1.1测试应用程序,因此logcat输出可能达不到标记):

??-?? ??:??:??.???: INFO/<unknown>(<unknown>): FATAL EXCEPTION: main
??-?? ??:??:??.???: INFO/<unknown>(<unknown>): java.lang.RuntimeException: Unable to resume activity {com.infy.qure/com.infy.qure.AndroidQuREActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.infy.qure/com.infy.qure.AndroidQuREActivity}: java.lang.NullPointerException
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2616)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2644)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2130)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.os.Handler.dispatchMessage(Handler.java:99)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.os.Looper.loop(Looper.java:137)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread.main(ActivityThread.java:4898)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at java.lang.reflect.Method.invokeNative(Native Method)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at java.lang.reflect.Method.invoke(Method.java:511)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at dalvik.system.NativeStart.main(Native Method)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.infy.qure/com.infy.qure.AndroidQuREActivity}: java.lang.NullPointerException
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3182)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2603)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     ... 12 more
??-?? ??:??:??.???: INFO/<unknown>(<unknown>): Caused by: java.lang.NullPointerException
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at org.apache.cordova.DroidGap.onActivityResult(DroidGap.java:850)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.Activity.dispatchActivityResult(Activity.java:5368)
??-?? ??:??:??.???: INFO/<unknown>(<unknown>):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3178)

我尝试了所有这些解决方案:

PhoneGap: Application crash taking portrait picture

code not working in Jelly Beans

Phonegap|Android 4 - App sometimes crashes when taking picture from PHOTOLIBRARY

但所有这些都没有帮助。 在尝试从photolibrary中获取图像并使用HTML设置时,我遇到了同样的问题。

我想在这里提到的主要内容是,上面的代码在三星Galaxy sIII(Android 4.0.4)上运行良好,但在Galaxy sIII(Android 4.1.1)中无效。 可能是什么问题?我有什么不对吗?任何输入都会有所帮助。

2 个答案:

答案 0 :(得分:5)

之前我遇到过同样的问题,我发现问题出在我的设置中,而不是我的应用程序。只需确认设置 - &gt;开发者选项 - &gt;应用 - &gt;并取消选中“不要保留活动”,因为一旦相机启动就会杀死应用程序并且无法再次恢复它。希望它适合你

答案 1 :(得分:0)

尝试使用android sdk 2.3.0。这适用于两种手机类型。