Android:无法启动活动ComponentInfo {/ com。}:android.view.InflateException:二进制XML文件行#6:错误膨胀类

时间:2013-12-11 06:01:45

标签: java android xml opencv

我正在使用OpenCV开发一个Android应用程序。我将JavaCameraPreview扩展到ScanPreview,如下所示

公共类ScanCameraPreview扩展了JavaCameraView {

private static final String TAG = "Sample::Tutorial3View";

public ScanCameraPreview(Context context, AttributeSet attrs) 
{
    super(context, attrs);
    Log.d(this.toString(), "starting camera preview");
    //mCamera.getParameters().get
}

这是使用ScanCameraPreview

的CameraActivity类的布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<com.example.androiddms.ScanCameraPreview
    android:id="@+id/camera_surface_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:visibility="gone"
     />


<TextView
    android:id="@+id/timer_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:rotation="270"
    android:layout_marginBottom="20dip"
    android:padding="12dip"    
    android:background="#AA000000"
    android:textColor="#ffffffff" />

当我尝试调试应用程序时,我注意到了这个错误

12-11 11:17:46.087: E/AndroidRuntime(27249): FATAL EXCEPTION: main
12-11 11:17:46.087: E/AndroidRuntime(27249): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androiddms/com.example.androiddms.CameraActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class com.example.androiddms.ScanCameraPreview

发生此错误后,我发现ScanCameraPreview类的实例化存在一些问题,如下所示 Error in activity_camer.xml

请帮我解决这个问题。我用谷歌搜索并尝试了类似的问题,但无法解决它。

2 个答案:

答案 0 :(得分:1)

我的 OpenCV项目中存在完全相同的问题。然后我尝试了一个示例OpenCV项目,但仍然得到了 The following class could not be instantiated

java.lang.NoClassDefFoundError: org/opencv/R$styleable

错误。我想您也可能错过了将 OpenCV 库正确包含到项目中的步骤。请按照此链接上的手动步骤进行操作。

Manual OpenCV4Android SDK setup

对我来说很好。

答案 1 :(得分:0)

为CustomView添加所有三种类型的构造函数。即ScanCameraPreview

public ScanCameraPreview(Context context) {
     super(context);
}

public ScanCameraPreview(Context context, AttributeSet attrs) {
     super(context, attrs);
}

public ScanCameraPreview(Context context, AttributeSet attrs, int defStyle) {
     super(context, attrs, defStyle);
}

并查看您的问题是否已解决。