2012-03-02 101 views
0

我昨天發佈了這個問題..但不幸的是,沒有人給我解決方案,我仍然不知道我的錯誤在哪裏。將攝像頭圖像的路徑保存到SQLite表中並檢索它

我只想將攝像頭拍攝的圖像路徑保存到SQLite表中。並且我想從數據庫中取出這條路徑並顯示圖片。

代碼:

public void takePic() { 
    String fileName = "temp.jpg"; 
    ContentValues values = new ContentValues(); 
    values.put(MediaStore.Images.Media.TITLE, fileName); 
    mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 

    cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI); 
    startActivityForResult(cameraIntent, Camera_requestCode); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == Camera_requestCode && resultCode == RESULT_OK) { 
     String[] projection = { MediaStore.Images.Media.DATA}; 
     Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null); 
     int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     String capturedImageFilePath = cursor.getString(column_index_data); 

     insertPath(capturedImageFilePath); 
     Bitmap image = (Bitmap) data.getExtras().get("data"); 
    } 
}; 

logcat的:

03-02 13:20:06.479: E/AndroidRuntime(378): FATAL EXCEPTION: main 

03-02 13:20:06.479:E/AndroidRuntime(378):了java.lang.RuntimeException:無法恢復活動{COM .android.SaveCameraPictureDemo/com.android.SaveCameraPictureDemo.SaveCameraPictureDemoActivity}:java.lang.RuntimeException:將結果resultInfo {who = null,request = 1,result = -1,data = null}傳遞給activity {com.android.SaveCameraPictureDemo /com.android.SaveCameraPictureDemo.SaveCameraPictureDemoActivity}:java.lang.NullPoi nterException 03-02 13:20:06.479:E/AndroidRuntime(378):at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2120) 03-02 13:20:06.479:E/AndroidRuntime(378)在android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135) 03-02 13:20:06.479:E/AndroidRuntime(378):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1668) 03- 02 13:20:06.479:E/AndroidRuntime(378):at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:2832) 03-02 13:20:06.479:E/AndroidRuntime(378):at android.app .ActivityThread.access $ 1600(ActivityThread.java:117) 03-02 13:20:06.479:E/AndroidRuntime(378):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:935) 03-02 13:20:06.479:E/AndroidRuntime(378):在android.o s.Handler.dispatchMessage(Handler.java:99) 03-02 13:20:06.479:E/AndroidRuntime(378):at android.os.Looper.loop(Looper.java:130) 03-02 13: 20:06.479:E/AndroidRuntime(378):at android.app.ActivityThread.main(ActivityThread.java:3683) 03-02 13:20:06.479:E/AndroidRuntime(378):at java.lang.reflect。 Method.invokeNative(Native Method) 03-02 13:20:06.479:E/AndroidRuntime(378):at java.lang.reflect.Method.invoke(Method.java:507) 03-02 13:20:06.479 :E/AndroidRuntime(378):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839) 03-02 13:20:06.479:E/AndroidRuntime(378):at com.android .internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-02 13:20:06.479:E/AndroidRuntime(378):at dalvik.system.NativeStart.main(Native Method) 03-02 13:20:06.479:E/AndroidRuntime(378):由於:java.lang.RuntimeException:將結果ResultInfo {who = null,request = 1,result = -1,data = null} {com.android.SaveCameraPictureDemo/com.android.SaveCameraPictureDemo.SaveCameraPictureDemoActivity}:java.lang.NullPointerException 03-02 13:20:06.479:E/AndroidRuntime(378):at android.app.ActivityThread.deliverResults(ActivityThread.java :2532) 03-02 13:20:06.479:E/AndroidRuntime(378):at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2107) 03-02 13:20:06.479:E/AndroidRuntime(378) ):... 13更多 03-02 13:20:06.479:E/AndroidRuntime(378):導致:java.lang.NullPointerException 03-02 13:20:06.479:E/AndroidRuntime(378):at android.content.ContentResolver.acquireProvider(ContentResolver.java:743) 03/02 13:20:06.479:E/AndroidRuntime(378):at android.content.ContentResolver.query(ContentResolver.java:256) 03-02 13:20:06.479:E/AndroidRuntime(378):at android .app.Activity.managedQuery(Activity.java:1550) 03-02 13:20:06.479:E/AndroidRuntime(378):at com.android.SaveCameraPictureDemo.SaveCameraPictureDemoActivity。onActivityResult(SaveCameraPictureDemoActivity.java:67) 03-02 13:20:06.479:E/AndroidRuntime(378):at android.app.Activity.dispatchActivityResult(Activity.java:3908) 03-02 13:20:06.479: E/AndroidRuntime(378):at android.app.ActivityThread.deliverResults(ActivityThread.java:2528) 03-02 13:20:06.479:E/AndroidRuntime(378):... 14更多 03-02 13: 36/55.168:E/AndroidRuntime(434):致命例外:主 03-02 13:36:55.168:E/AndroidRuntime(434):java.lang.RuntimeException:傳遞結果失敗ResultInfo {who = null,request = 1 ,result = -1,data = null} to activity {com.android.SaveCameraPictureDemo/com.android.SaveCameraPictureDemo.SaveCameraPictureDemoActivity}:java.lang.NullPointerException 03-02 13:36:55.168:E/AndroidRuntime(434):在android.app.ActivityThread.deliverResults(ActivityThread.java:2532) E/AndroidRuntime(434):at android.app.ActivityThread.handleSendResult(ActivityThread.java:2574) 03-02 13:36:55.168:E/AndroidRuntime(434):at android.app.ActivityThread.access $ 2000(ActivityThread.java:117) 03-02 13:36:55.168:E/AndroidRuntime(434):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:961) 03-02 13:36:55.168:E/AndroidRuntime(434):at android.os.Handler.dispatchMessage(Handler.java:99) 03-02 13:36:55.168:E/AndroidRuntime(434):at android .os.Looper.loop(Looper.java:130) 03-02 13:36:55.168:E/AndroidRuntime(434):at android.app.ActivityThread.main(ActivityThread.java:3683) 03-02 13 :36:55.168:E/AndroidRuntime(434):at java.lang.reflect.Method.invokeNative(Native Method) 03-02 13:36:55.1 68:E/AndroidRuntime(434):在java.lang.reflect.Method.invoke(Method.java:507) 03-02 13:36:55.168:E/AndroidRuntime(434):at com.android.internal。 os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839) 03-02 13:36:55.168:E/AndroidRuntime(434):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-02 13:36:55.168:E/AndroidRuntime(434):at dalvik.system.NativeStart.main(Native Method) 03-02 13:36:55.168:E/AndroidRuntime(434):由java導致: .lang.NullPointerException 03-02 13:36:55.168:E/AndroidRuntime(434):at com.android.SaveCameraPictureDemo.SaveCameraPictureDemoActivity.onActivityResult(SaveCameraPictureDemoActivity.java:73) 03-02 13:36:55.168:E/AndroidRuntime(434):at android.app.Activity.dispatchActivityResult(Activity.java:3908) 03-02 13:36 :55.168:E/AndroidRuntime(434):at android.app.ActivityThread.deliverResults(ActivityThread.java:2528) 03-02 13:36:55.168:E/AndroidRuntime(434):... 11更多

回答

1

更改代碼,

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == Camera_requestCode && resultCode == RESULT_OK) { 

     if(data != null) 
     { 
     String[] projection = { MediaStore.Images.Media.DATA}; 
     Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null); 
     int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     String capturedImageFilePath = cursor.getString(column_index_data); 

     insertPath(capturedImageFilePath); 
     Bitmap image = (Bitmap) data.getExtras().get("data"); 
     } 
    else 
    { 
     Log.e("OnActivityResult()", "data is null"); 
    } 
    } 
}; 
+0

現在不crash..but u能告訴我什麼是log.e,我怎麼能retrive圖片的路徑,以顯示它在其他地方 – LetsamrIt 2012-03-02 12:45:10

+0

你的意圖的數據爲空,所以你有forceclose,這意味着你的相機活動有問題以支持結果圖片數據。 – user370305 2012-03-02 17:25:35

相關問題