Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]

I'm receiving this error when I run my application.

The error:

 Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
            at java.lang.Class.getConstructorOrMethod(Class.java:472)
            at java.lang.Class.getConstructor(Class.java:446)
            at android.view.LayoutInflater.createView(LayoutInflater.java:574)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366) 
            at android.app.Activity.setContentView(Activity.java:2031) 
            at com.example.syafiq.facialrecognition.Recognize_Face.onCreate(Recognize_Face.java:152)

The Recognize_Face.java:152) was pointed here:

(line 148) protected void onCreate(Bundle savedInstanceState) {
    (line 149) Log.i(TAG, "called onCreate");
    (line 150) 1super.onCreate(savedInstanceState);
    (line 151) getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    (line 152) setContentView(R.layout.activity_recognize__face);

my activity_recognize_face.xml :

<?xml version="1.0" encoding="utf-8"?><RelativeLayout
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"
android:orientation="vertical"
android:background="#e7bc3a">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_weight="0.88"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="0.88">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <Button
            android:id="@+id/buttonCat"
            android:layout_width="65dp"
            android:layout_height="68dp"
            android:text="@string/SViewAll"
            android:background="#4892f4"/>

            <com.example.syafiq.facialrecognition.Tutorial3View
                android:id="@+id/tutorial3_activity_java_surface_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.88" />

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="120dp"
                android:layout_height="140dp"
                android:src="@drawable/lightbulb" />
        </LinearLayout>

    </RelativeLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/textViewState"
            android:layout_width="190dp"
            android:layout_height="wrap_content"
            android:text="@string/SIdle"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_green" />

            <ImageView
                android:id="@+id/imageView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_yellow" />

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_red" />

        </RelativeLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ToggleButton
            android:id="@+id/toggleButton1"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="0.07"
            android:checked="false"
            android:text="@string/STrain"
            android:textOff="@string/STrain"
            android:textOn="@string/SStopTrain"
            android:background="#4892f4" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.71"
            android:text="@string/SFaceName"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1.76"
            android:maxLines="1"
            android:singleLine="true">

            <requestFocus />
        </EditText>

        <ToggleButton
            android:id="@+id/buttonBuscar"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="@string/SSearch"
            android:textOff="@string/SSearch"
            android:textOn="@string/SStopSearch"
            android:background="#4892f4" />

        <ToggleButton
            android:id="@+id/toggleButtonGrabar"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="Grabar"
            android:textOff="Rec"
            android:textOn="Stop"
            android:background="#4892f4" />

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.73"
            android:src="@drawable/ic_stat_camera" />

       </LinearLayout>

     </LinearLayout>
</RelativeLayout>

Can anyone help me :/ I'm really appreciate your time and help for consideration for solving my error. Thanks in Advance!

like image 980
bo2 Avatar asked Dec 26 '15 07:12

bo2


3 Answers

You have a custom view referenced in your layout XML, and the custom view doesn't have the required public constructor that takes in Context,AttributeSet arguments.

like image 168
laalto Avatar answered Oct 24 '22 00:10

laalto


If you arrived at this post but are using Kotlin, annotate your constructor with @JvmOverloads.

Doc: Kotlin - Overloads Generation

class MyView @JvmOverloads constructor(
    context: Context, 
    attrs: AttributeSet? = null, 
    defStyle: Int = 0
) : LinearLayout(context, attrs, defStyle)
like image 92
Shazbot Avatar answered Oct 23 '22 23:10

Shazbot


An improvement to @Shazbot's answer for Kotlin. Add these constructors:

class CustomView : View {

    constructor(context: Context) : super(context)

    constructor(context: Context, attrs: AttributeSet) : super(context, attrs)

    constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(context, attrs, defStyle)

}

When you need init:

class CustomView : View {

    constructor(context: Context) : super(context) {
        init(null, 0)
    }

    constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
        init(attrs, 0)
    }

    constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(context, attrs, defStyle) {
        init(attrs, defStyle)
    }

    private fun init(attrs: AttributeSet?, defStyle: Int) {
        // do something
    }
like image 2
hata Avatar answered Oct 24 '22 00:10

hata