Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 摄像机零点异常_Java_Android - Fatal编程技术网

Java 摄像机零点异常

Java 摄像机零点异常,java,android,Java,Android,我正在学习Android摄像头教程SDK 11。出于某种原因,我在handleCameraPhoto()中得到一个空指针。我看到的唯一一件事是“未能将结果ResultInfo{who=null,request=100,result=-1,data=null}传递到活动”,但我无法找出原因 <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="

我正在学习Android摄像头教程SDK 11。出于某种原因,我在handleCameraPhoto()中得到一个空指针。我看到的唯一一件事是“未能将结果ResultInfo{who=null,request=100,result=-1,data=null}传递到活动”,但我无法找出原因

<uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
错误猫

11-19 11:39:06.782: W/dalvikvm(7719): threadid=1: thread exiting with uncaught exception (group=0x41549700)
11-19 11:39:06.782: E/AndroidRuntime(7719): FATAL EXCEPTION: main
11-19 11:39:06.782: E/AndroidRuntime(7719): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=null} to activity {com.shindiggy.shindiggy/com.shindiggy.shindiggy.CameraActivity}: java.lang.NullPointerException
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3367)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3410)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.app.ActivityThread.access$1100(ActivityThread.java:141)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1304)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.os.Looper.loop(Looper.java:137)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.app.ActivityThread.main(ActivityThread.java:5103)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at java.lang.reflect.Method.invokeNative(Native Method)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at java.lang.reflect.Method.invoke(Method.java:525)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at dalvik.system.NativeStart.main(Native Method)
11-19 11:39:06.782: E/AndroidRuntime(7719): Caused by: java.lang.NullPointerException
11-19 11:39:06.782: E/AndroidRuntime(7719):     at com.shindiggy.shindiggy.CameraActivity.handleCameraPhoto(CameraActivity.java:68)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at com.shindiggy.shindiggy.CameraActivity.onActivityResult(CameraActivity.java:51)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.app.Activity.dispatchActivityResult(Activity.java:5322)
11-19 11:39:06.782: E/AndroidRuntime(7719):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3363)
11-19 11:39:06.782: E/AndroidRuntime(7719):     ... 11 more

似乎正在使用代码中的参数调用
handleCameraPhoto(asdf)
(但您没有向我们展示这一部分),问题是对象
asdf
没有分配
new
。这意味着程序内存中没有物理对象

因此,当执行该方法的指令时,尤其是
data.getData()
,会发生崩溃,因为名称
data
没有引用程序内存中的有效对象


NullPointerException尝试访问未正确分配的对象的成员时会发生错误在调用
handleCameraPhoto()

时,请确保分配了对象。有时,当手机插入USB线时,出于安全原因,对摄像头文件的访问会被阻止。另外,当从摄像机返回活动时,检查空数据。

谢谢大家的输入,它帮助我思考我需要寻找什么

无论何时通过传递带相机意图的EXTRAOUTPUT来保存图像 onActivityResult中的数据参数始终返回null。所以 使用文件路径来检索图像,而不是使用数据来检索图像 检索位图

这么说来,更新了handleCameraPhoto以获取文件URI,应用程序就恢复工作了

/**
 * 
 * @param intent
 */
private void handleCameraPhoto(Intent data) {
    Toast.makeText(this, "Image saved to:\n" +
            this.fileUri, Toast.LENGTH_LONG).show();
}

您的Intent参数
data
可能为空。好吧,那么,当成功拍摄照片时,Intent为什么会返回空值,并且应该在相机意图完成时传递给onActivityResult()?请单击帮助您解决问题的答案附近。您将帮助像您这样的未来访客。更新了帖子以包含handleCameraPhoto()@Levi
handleCameraPhoto()
的实现已经存在,现在已经复制。我的意思是,您没有显示调用
handleCameraPhoto()
的位置,因为这就是问题所在。它是在onActivityResult()中调用的,onActivityResult()是针对意图的代理回调,基本上只是将意图对象转发给handleCameraPhoto()。对不起,如果我仍然没有跟上
/**
 * 
 * @param intent
 */
private void handleCameraPhoto(Intent data) {
    Toast.makeText(this, "Image saved to:\n" +
            this.fileUri, Toast.LENGTH_LONG).show();
}