我的应用程序相机预览使用textureview
。
现在的情况是,在我的应用程序中单击按钮
启动wifiapp
Intent intent = getPackageManager().getLaunchIntentForPackage("kr.co.aaa.wifiapp");
startActivity(intent);
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
mCamera.setPreviewCallback(null);
mCamera.release();
mCamera = null;
}
此时,调用OnSurfaceTextureAvailable
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
try {
mCamera.setPreviewTexture(surfaceTexture); //NPE
mCamera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
重新启动我的应用程序时,发生NullPointerException
我认为出现NPEonSurfaceTextureDestromed
mcamera=null;
。
因为当我的应用程序重新启动时,mCamera状态为null调用OnSurfaceTextureAvailable
,mCamera.SetPreviewTexture(surfaceTexture)
为null。
所以我尝试删除mcamera=null
但会出现不同的错误。
此错误Mcamera.SetPrevietExture(surfaceTexture)
如何解决这个问题?
多谢了。
public class CameraTexture extends TextureView implement TextureView.SurfaceTextureListener {
private Camera mCamera;
private TextureView mTextureView;
public CameraTexture(Context context, LiveCamera liveCamera) {
super(context);
mCamera = liveCamera.camera;
mTextureVeiw = (TextureView) activity.findViewById(R.id.live);
mTextureView.setSurfaceTextureListener(this);
}
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
try {
mCamera.setPreviewTexture(surfaceTexture);
mCamera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i2) {
}
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
mCamera.setPreviewCallback(null);
mCamera.release();
mCamera = null; // if delete this line, occur Camera is being used after Camera.release() was called error
}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
Bitmap bitmap = mTextureView.getBitmap();
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int[] pixels = new int[bitmap.getHeight() * bitmap.getWidth()];
bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
}
}
public class LiveCamera {
public Camera camera;
}
请检查类名和构造函数名
public class CameraTexture extends TextureView implement TextureView.SurfaceTextureListener {
private Camera mCamera;
private TextureView mTextureView;
public CameraTexture(Context context, LiveCamera liveCamera) {
super(context);
mCamera = liveCamera.camera;
mTextureVeiw = (TextureView) activity.findViewById(R.id.live);
mTextureView.setSurfaceTextureListener(this);
}
//your remain code
}
我已经更新到新的adt 可悲的是,做了一些改变,我找不到任何关于如何使用它们的信息。谈论ProGuard的官网链接(在Android网站中)仍然谈论旧的方式。 他们在“project.properties”上写下,取消注释下一行: 这不起作用,尝试导出时会出现以下错误: 有人能帮我吗?我以前从来没有改变过proguard.cfg文件,一切都是自动的。我很少做这样的事。 他们还添加了一个文件prog
你好,我做了几天的研究和一些问题分析,但我现在不知道如何解决我的问题。 也许有人能帮忙...... 我正在使用Android设备的Jsch来访问我的raspberry pi,以便设置一些特定的命令。 我从jschshell命令开始,除了由于无限循环而无法关闭连接之外,一切都很好。 我试图切换到Exec,尤其是因为我只想发送几个命令,而不需要知道shell上发生了什么。 不管怎样...这是我的代码:
验证DatePickerDialog上的日期时出现了IllegalArgumentException。下面是StackTrace: 和我的代码 我在创建对话框时没有问题,并且当对话框显示时,日期被正确初始化。 无论选择的日期是什么,都会引发IllegalArgumentException。 我一直在寻找答案,但所有类似的帖子都是关于创建对话框时出现的过度,而不是日期的验证。 你能帮我查查是怎么回事
2.)AVD没有互联网问题(原因稍后解释)。 3.)与我的volley singleton类或请求队列无关(原因稍后解释)。 所以我想我在Volley/Request Future的用法上犯了某种错误。
问题内容: 目前,我正在安装psycopg2以便在Eclipse中使用python工作。 我发现很多问题: 第一个问题不起作用,并显示以下消息 错误:找不到pg_config可执行文件。 固定于: 当我在项目中导入psycopg2时,我会观察: ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/pyth