我是在android相机应用程序的工作,我想绿屏色度关键效果捕获的图像。我已经在我的代码中使用了http://code.google.com/p/chroma-key-project/downloads/list这个色键项目。
我正在使用平板电脑,它有前置摄像头而不是后置摄像头..我也使用了前置摄像头的权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.front" />
尽管如此,它仍然显示了从preview.java页到此行的错误空指针异常。camera.setPreviewDisplay(holder);
// <9>为什么?
检查色度键project.please suggest中给定链接的preview.java
页面。
我得到了这种类型的错误。
10-11 15:37:36.131: W/dalvikvm(11339):threadid=1:线程退出,未捕获异常(group=0x409ee1f8) 10-11 15:37:36.141: E/AndroidRuntime(11339):致命异常: main 10-11 15:37:36.141: E/AndroidRuntime(11339):java.lang.UnsupportedOperationException 10-11 15:37:36.141: E/AndroidRuntime(11339):at java.lang.Thread.stop(Thread.java:1076) 10-11 15:37:36.141: E/AndroidRuntime(11339):at java.lang.Thread.stop(Thread.java:1063) 10-11 15:37:36.141: E/AndroidRuntime(11339):at android 10-11 15:37:36.141: E/AndroidRuntime(11339):at android 10-11 15:37:36.141: E/AndroidRuntime(11339):at android。os.Handler.dispatchMessage(Handler.java:99) 10-11 15:37:36.141: E/AndroidRuntime(11339):at android.os.Looper.loop(Looper.java:137) 10-11 15:37:36.141: E/AndroidRuntime(11339):at android.app.ActivityThread.main(ActivityThread.java:4424) 10-11 15:37:36.141: E/AndroidRuntime(11339):at java.lang.reflect.Method.invokeNative(原生方法) 10-11 15:37:36.141: E/AndroidRuntime(11339):at java.lang.reflect.Method.invoke(Method.java:511) 10-11 15:37:36.141: E/AndroidRuntime(11339):at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 10-11 15:37:36.141: E/AndroidRuntime(11339):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 10-11 15:37:36。141: E/AndroidRuntime(11339):在dalvik.system.NativeStart.main(本机方法)
谢谢!
发布于 2012-10-11 17:55:01
我认为Camera.open()试图打开默认的后置摄像头,所以它返回null,因为后端没有摄像头。
如果您尝试使用函数Camera.open(int)打开前置摄像头,会怎么样?
如下所示:
int getFrontCameraId() {
CameraInfo ci = new CameraInfo();
for (int i = 0 ; i < Camera.getNumberOfCameras(); i++) {
Camera.getCameraInfo(i, ci);
if (ci.facing == CameraInfo.CAMERA_FACING_FRONT) return i;
}
return -1; // No front-facing camera found
}
然后像这样得到它:
int index = getFrontCameraId();
if (index == -1) error();
Camera c = Camera.open(index);
来自:How to detect if there is front camera and if there is how to reach and use front camera?
停止编辑:你正在使用的代码非常旧,并且有各种各样的旧函数,我认为你的崩溃是由旧的线程函数()引起的。
链接中的代码:
public void startCamera() {
setContentView(R.layout.camview);
fGameView = null;
fGameThread.stop();
fGameThread=null;
据开发者网站介绍:
stop()此方法已弃用。因为以这种方式停止线程是不安全的,并且会使您的应用程序和VM处于不可预测的状态。
请参见:
java.lang.UnsupportedOperationException when my splash screen starts
http://developer.android.com/reference/java/lang/Thread.html#stop()
编辑二:
将onCreateOptionsMenu代码更改为此,不应使用myMenu变量。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, MENU_START, 0, R.string.menu_start);
menu.add(0, MENU_SEND, 0, R.string.menu_send);
return true;
}
https://stackoverflow.com/questions/12836801
复制相似问题