2013-02-07 68 views
-3

我正在构建一个使用相机前后两个相机的应用程序,但是我在这个语句中得到一个空指针错误。takepicture()给出Nullpointer异常

公共无效的onClick(查看视图){

//camera.takePicture(shutter, raw, postview, jpeg) 
    //camera.takePicture(null, null, new PhotoHandler(getApplicationContext())); 
camera.takePicture(null, null, 
    new PhotoHandler(MakePhotoActivity.this)); 

}

请帮我,因为我硝基甲苯笏知道的问题是在这里。

在此先感谢。

02-07 23:06:12.445: E/AndroidRuntime(30045): FATAL EXCEPTION: main 
02-07 23:06:12.445: E/AndroidRuntime(30045): java.lang.IllegalStateException: Could not execute method of the activity 
02-07 23:06:12.445: E/AndroidRuntime(30045): at android.view.View$1.onClick(View.java:2144) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at android.view.View.performClick(View.java:2485) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at android.view.View$PerformClick.run(View.java:9080) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at android.os.Handler.handleCallback(Handler.java:587) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at android.os.Looper.loop(Looper.java:130) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at android.app.ActivityThread.main(ActivityThread.java:3687) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at java.lang.reflect.Method.invokeNative(Native Method) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at java.lang.reflect.Method.invoke(Method.java:507) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at dalvik.system.NativeStart.main(Native Method) 
02-07 23:06:12.445: E/AndroidRuntime(30045): Caused by: java.lang.reflect.InvocationTargetException 
02-07 23:06:12.445: E/AndroidRuntime(30045): at java.lang.reflect.Method.invokeNative(Native Method) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at java.lang.reflect.Method.invoke(Method.java:507) 
02-07 23:06:12.445: E/AndroidRuntime(30045): at android.view.View$1.onClick(View.java:2139) 
02-07 23:06:12.445: E/AndroidRuntime(30045): ... 11 more 
02-07 23:06:12.445: E/AndroidRuntime(30045): Caused by: java.lang.NullPointerException 
02-07 23:06:12.445: E/AndroidRuntime(30045): at com.example.cameraapp.MakePhotoActivity.onClick(MakePhotoActivity.java:41) 
+4

发布日志猫和代码。 –

+0

我们真的没有足够的能力离开这里。但是从你发布的内容看,当你试图调用takePicture() – FoamyGuy

+0

@FoamyGuy或PhotoHandler构造函数引用空值的东西时,'camera'看起来像是null。或getApplicationContext()为空(称为生命周期的outsourcing) –

回答

0

更改“getApplicationContext()”到“ActivityClassName.this”

+0

没有它仍然是一样的 –

0

我使用的是similer代码,你在我的应用程序和我的应用程序也用完就扔就行了空指针异常:

camera.takePicture(null, null,new PhotoHandler(getApplicationContext())); 

我认为这是由于相机造成越来越空value.To避免这种例外,我把支票在这条线code.So的了的onClick函数看起来的顶部,如:

public void onClick(View view) { 
    if (camera != null) { 
    Log.d("camera state","camera is NOT null"); 
    }else{ 
    Log.d("camera state","camera is null"); 
    camera = android.hardware.Camera.open(cameraId); 
    } 
    camera.takePicture(null, null,new PhotoHandler(getApplicationContext())); 
} 

ps:我的代码是只使用前面的cam.Hope它帮助!