Android 应用程序在ActivityResult上停止

Android 应用程序在ActivityResult上停止,android,android-intent,onactivityresult,android-image-capture,Android,Android Intent,Onactivityresult,Android Image Capture,我是android开发新手。这是一个测试应用程序,我试图通过它调用活动的图像。除了在onACtivityResult()中返回相机图像外,一切似乎都很好;应用程序崩溃了。我加入了日志,以便指出错误实际发生的位置 以下是Mainfest文件: <?xml version="1.0" encoding="utf-8"?> 这是OnActivityResult: @Override protected void onActivityResult(int requestCode, int

我是android开发新手。这是一个测试应用程序,我试图通过它调用活动的图像。除了在onACtivityResult()中返回相机图像外,一切似乎都很好;应用程序崩溃了。我加入了日志,以便指出错误实际发生的位置

以下是Mainfest文件:

<?xml version="1.0" encoding="utf-8"?>
这是OnActivityResult:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                if (requestCode == REQUEST_IMAGE_CAPTURE) {
                            if (resultCode == RESULT_OK) {
                Log.i(TAG, "onActivityResult: success");

            }

        } else {
            if (resultCode == RESULT_CANCELED) {
                Log.e(TAG, "onActivityResult: error and RESULT_CANCEllED TRUE");
            }
        }
}
这是我从camera应用程序中拍摄并返回意图后的日志:

03-07 12:44:49.963 27953-27953/myapp.test.nilabhra.com.freshstart E/AndroidRuntime: FATAL EXCEPTION: main
    Process: myapp.test.nilabhra.com.freshstart, PID: 27953
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=inline-data (has extras) }} to activity {myapp.test.nilabhra.com.freshstart/myapp.test.nilabhra.com.freshstart.DisplayMessageActivity}: java.lang.NullPointerException: uri
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3717)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3760)
        at android.app.ActivityThread.access$1400(ActivityThread.java:153)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5451)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
        Caused by: java.lang.NullPointerException: uri
        at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:60)
        at android.content.ContentResolver.query(ContentResolver.java:476)
        at android.content.ContentResolver.query(ContentResolver.java:435)
        at myapp.test.nilabhra.com.freshstart.DisplayMessageActivity.onActivityResult(DisplayMessageActivity.java:164)
        at android.app.Activity.dispatchActivityResult(Activity.java:6528)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3713)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3760) 
        at android.app.ActivityThread.access$1400(ActivityThread.java:153) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5451) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

将此置于startActivityForResult之前

Uri imageUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

堆栈跟踪的可能副本表示您正在
onActivityResult()
中执行
ContentResolver
查询,但您的代码没有显示此类内容。您可能需要在启动活动之前将目标URI设置为额外的:captureIntent.putExtra(MediaStore.extra\u输出,photoURI);使用哪一版本的安卓操作系统?@MikeM。我用于联系目的的ContentResolver,是的,它位于onActivity结果中。我不能将多个结果放在同一个onActivityresults上吗?我确信联系人结果没有问题,因为当我省略摄影机结果的代码时,onActivityresults工作正常。很抱歉,我的错,contentResolver()中出现了问题
03-07 12:44:49.963 27953-27953/myapp.test.nilabhra.com.freshstart E/AndroidRuntime: FATAL EXCEPTION: main
    Process: myapp.test.nilabhra.com.freshstart, PID: 27953
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=inline-data (has extras) }} to activity {myapp.test.nilabhra.com.freshstart/myapp.test.nilabhra.com.freshstart.DisplayMessageActivity}: java.lang.NullPointerException: uri
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3717)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3760)
        at android.app.ActivityThread.access$1400(ActivityThread.java:153)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5451)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
        Caused by: java.lang.NullPointerException: uri
        at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:60)
        at android.content.ContentResolver.query(ContentResolver.java:476)
        at android.content.ContentResolver.query(ContentResolver.java:435)
        at myapp.test.nilabhra.com.freshstart.DisplayMessageActivity.onActivityResult(DisplayMessageActivity.java:164)
        at android.app.Activity.dispatchActivityResult(Activity.java:6528)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3713)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3760) 
        at android.app.ActivityThread.access$1400(ActivityThread.java:153) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5451) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Uri imageUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);