我正在使用OpenCV开发一个Android应用程序。在我的相机活动中,当我设置布局时,应用程序崩溃。 我不知道为什么我的应用程序表现异常。它随机崩溃。首先在实例化ScanCameraPreview时出现错误,但现在,它在设置布局时崩溃。
CameraActivity.java
public CameraActivity()
{
Log.i(TAG, "Instantiated new " + this.getClass());
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
Log.i(TAG, "called onCreate");
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_camera); // Crashes here
mOpenCvCameraView = (ScanCameraPreview) findViewById(R.id.camera_surface_view);
mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
mOpenCvCameraView.setCvCameraViewListener(this);
//mOpenCvCameraView.setCameraRotation();
......
}
这是我的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/camera_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".CameraActivity" >
<com.example.androiddms.ScanCameraPreview
android:id="@+id/camera_surface_view"
android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="match_parent" />
</LinearLayout>
这是我的自定义相机视图
public class ScanCameraPreview extends JavaCameraView
{
private static final String TAG = "AndroidDms::ScanCameraView";
public ScanCameraPreview(Context context, AttributeSet attrs)
{
super(context, attrs);
Log.d(this.toString(), "Starting camera preview");
//mCamera.getParameters().get
}
}
请帮帮我。我仔细地调试了它,它在setcontentview崩溃了。 谢谢你的时间。
这是我的logcat
答案 0 :(得分:0)
尝试覆盖ScanCameraPreview的所有三个构造函数
public class ScanCameraPreview extends JavaCameraView
{
private static final String TAG = "AndroidDms::ScanCameraView";
public ScanCameraPreview(Context context, AttributeSet attrs)
{
super(context, attrs);
Log.d(this.toString(), "Starting camera preview");
//mCamera.getParameters().get
}
public ScanCameraPreview(Context context)
{
super(context);
Log.d(this.toString(), "Starting camera preview");
//mCamera.getParameters().get
}
public ScanCameraPreview(Context context, AttributeSet attrs,int style)
{
super(context, attrs,style);
Log.d(this.toString(), "Starting camera preview");
//mCamera.getParameters().get
}
}