1

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: 縦向きの写真を撮るとアプリケーションがクラッシュする

Jelly Beans でコードが機能しない

Phonegap|Android 4 - PHOTOLIBRARY から写真を撮るとアプリがクラッシュすることがある

しかし、これらはすべて役に立ちません。フォトライブラリから画像を取得し、HTML で設定しようとしているときに直面している同じ問題。

ここで言及したい主なことは、上記のコードは Samsung Galaxy sIII (Android 4.0.4) では正常に動作しますが、Galaxy sIII (Android 4.1.1) では動作しないということです。何が問題なのですか?私は何か間違いをしていますか?どんな入力も役に立ちます。

4

2 に答える 2

5

以前も同じ問題がありましたが、問題はアプリではなく設定にあることがわかりました。[設定] -> [開発者向けオプション] -> [アプリ] -> [アクティビティを保持しない] のチェックを外してください。これは、カメラが起動するとアプリが強制終了され、再び再開できなくなるためです。それがあなたのために働くことを願っています

于 2013-04-13T13:25:08.420 に答える
0

Android SDK 2.3.0 を使用してみてください。これは、両方の電話タイプで機能するはずです。

于 2013-02-14T07:24:53.690 に答える