android - onActivityResult 方法错误

标签 android sqlite android-camera

我还有同样的问题..

Java 代码:

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");
    }
};

日志:

    03-01 13:36:55.390: E/AndroidRuntime(20416): FATAL EXCEPTION: main
03-01 13:36:55.390: E/AndroidRuntime(20416): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.android.SaveCameraPictureDemo/com.android.SaveCameraPictureDemo.SaveCameraPictureDemoActivity}: java.lang.NullPointerException
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.app.ActivityThread.deliverResults(ActivityThread.java:2536)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:2578)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.app.ActivityThread.access$2000(ActivityThread.java:117)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:965)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.os.Looper.loop(Looper.java:123)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.app.ActivityThread.main(ActivityThread.java:3691)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at java.lang.reflect.Method.invokeNative(Native Method)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at java.lang.reflect.Method.invoke(Method.java:507)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at dalvik.system.NativeStart.main(Native Method)
03-01 13:36:55.390: E/AndroidRuntime(20416): Caused by: java.lang.NullPointerException
03-01 13:36:55.390: E/AndroidRuntime(20416):    at com.android.SaveCameraPictureDemo.SaveCameraPictureDemoActivity.onActivityResult(SaveCameraPictureDemoActivity.java:73)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.app.Activity.dispatchActivityResult(Activity.java:3908)
03-01 13:36:55.390: E/AndroidRuntime(20416):    at android.app.ActivityThread.deliverResults(ActivityThread.java:2532)
03-01 13:36:55.390: E/AndroidRuntime(20416):    ... 11 more

最佳答案

以下几行是错误的,你无法像这样获取捕获图像的路径。

String imgPath = data.getData().toString();
        insertPath(imgPath);

关于android - onActivityResult 方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9515600/

相关文章:

android - 如何使用 React Native 开发电子邮件客户端应用程序

Android Studio SuppressLint "ClickableViewAccessibility"不工作

android - Eclipse - Android 可绘制图像资源不刷新

sqlite - 评估将 Core Data 与 Dropbox 同步的策略

java - 如何将 SQlite 数据库加载到 Recyclerview 中?

c# - Android:如何将 ExecuteScalar 移植到 Java?

android - Camera API2-控制相机中固定区域的曝光级别

android - 当相机在 Android 中的表面 View 上实时显示时以编程方式截屏

java - Action 图像捕捉导致观看时图像模糊

android - 在android中加载flash文件(.swf)webview