Tôi đã phát triển ứng dụng Máy ảnh trong Android. Nó chụp ảnh bằng cách sử dụng một giao diện bề mặt. Dưới đây là mã mà tôi đã sử dụng để mở máy ảnhMở Máy ảnh trong máy tính bảng Nexus 7
try {
// attempt to get a Front Camera instance
c = Camera.open(Camera.CameraInfo.CAMERA_FACING_FRONT);
} catch (Exception e) {
// TODO Auto-generated catch block
System.out
.println("fail to connect to Front Camera");
}
if (c == null) {
try {
// attempt to get a Back Camera instance
c = Camera.open(1);
} catch (Exception e) {
// TODO: handle exception
System.out
.println("fail to connect to Camera with id = 1");
}
}
if (c == null) {
try {
// attempt to get a Back Camera instance
c = Camera.open(0);
} catch (Exception e) {
// TODO: handle exception
System.out
.println("fail to connect to Camera with id = 0");
}
}
if (c == null) {
try {
// attempt to get a Back Camera instance
c = Camera.open();
} catch (Exception e) {
// TODO: handle exception
System.out
.println("fail to connect to Back Camera");
return c;
}
Trường hợp c là đối tượng của Máy ảnh.
Tính năng này hoạt động tốt trên các điện thoại khác ngoại trừ Nexus 7 Tablet. Trong Nexus 7, mã ném ngoại lệ trong tất cả các trường hợp ngoại trừ mã cuối cùng, ví dụ: c = Camera.open();
, nhưng đối tượng vẫn là c
là null
.
Đây là stack trace
11-22 12:36:57.559 W/System.err(7621): java.lang.NullPointerException
11-22 12:36:57.559 W/System.err(7621): at
com.MyPackage.OpenCamera.getFrontCameraInstance(OpenCamera.java:238)
11-22 12:36:57.559 W/System.err(7621): at
com.MyPackage.OpenCamera.onCreate(OpenCamera.java:123)
11-22 12:36:57.559 W/System.err(7621): at
android.app.Activity.performCreate(Activity.java:5104)
11-22 12:36:57.559 W/System.err(7621): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-22 12:36:57.559 W/System.err(7621): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-22 12:36:57.559 W/System.err(7621): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-22 12:36:57.559 W/System.err(7621): at
android.app.ActivityThread.access$600(ActivityThread.java:141)
11-22 12:36:57.559 W/System.err(7621): at android.app.ActivityThread
$H.handleMessage(ActivityThread.java:1234)
11-22 12:36:57.559 W/System.err(7621): at
android.os.Handler.dispatchMessage(Handler.java:99)
11-22 12:36:57.559 W/System.err(7621): at android.os.Looper.loop
(Looper.java:137)
11-22 12:36:57.559 W/System.err(7621): at android.app.ActivityThread.main
(ActivityThread.java:5039)
11-22 12:36:57.559 W/System.err(7621): at
java.lang.reflect.Method.invokeNative(Native Method)
11-22 12:36:57.559 W/System.err(7621): at java.lang.reflect.Method.invoke
(Method.java:511)
11-22 12:36:57.559 W/System.err(7621): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:793)
11-22 12:36:57.559 W/System.err(7621): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-22 12:36:57.559 W/System.err(7621): at dalvik.system.NativeStart.main
(Native Method)
11-22 12:36:57.559 I/System.out(7621): Error in setting Parameter
11-22 12:36:57.609 I/ActivityManager(480): Displayed
11-22 12:36:57.679 W/System.err(7621): at
android.location.Geocoder.getFromLocation(Geocoder.java:136)
11-22 12:36:57.679 W/System.err(7621): at com.MyPackage.OpenCamera.
$MyTimmer$1.run(OpenCamera.java:336)
11-22 12:36:57.679 W/System.err(7621): java.lang.NullPointerException
11-22 12:36:57.679 W/System.err(7621): at com.MyPackage.OpenCamera.
$MyTimmer$1.run(OpenCamera.java:344)
Vì vậy, tôi không thể sử dụng nó để chụp ảnh. Bất kỳ giải pháp nào ???
Thanks ...
Thông báo của ngoại lệ là gì? – fiddler
Tôi nhận được một NullPointerException khi tôi cố gắng sử dụng đối tượng này để chụp ảnh. –
@ AnujMathur_07 bạn có thể vui lòng đăng toàn bộ dấu vết/thông báo ngoại lệ không? – dumbfingers