0

I am stuck in this problem from last 4-5 days. I am new to kotlin programming in android so i didn't have any idea about it. While running my app I am getting this error in my Cardview The Error is:

 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.alferdize.pythoniz, PID: 27369
    android.view.InflateException: Binary XML file line #2: Binary XML 
        file line #2: Error inflating class android.support.v7.widget.CardView
            at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
            at com.alferdize.pythoniz.FoodAdapter.onCreateViewHolder(FoodAdapter.kt:13)
            at com.alferdize.pythoniz.FoodAdapter.onCreateViewHolder(FoodAdapter.kt:11)
            at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6794)
            at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5975)
            at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
            at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
            at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230)
            at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1557)
            at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
            at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
            at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
            at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641)
            at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194)
            at android.view.View.layout(View.java:16975)
            at android.view.ViewGroup.layout(ViewGroup.java:5579)
            at android.widget.LinearLayout.setChildFrame(LinearLayout.java:2001)
            at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1990)
            at android.widget.LinearLayout.onLayout(LinearLayout.java:1755)
            at android.view.View.layout(View.java:16975)
            at android.view.ViewGroup.layout(ViewGroup.java:5579)
            at android.widget.FrameLayout.layoutChildren(FrameLayout.java:396)
            at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
            at android.view.View.layout(View.java:16975)
            at android.view.ViewGroup.layout(ViewGroup.java:5579)
            at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
            at android.view.View.layout(View.java:16975)
            at android.view.ViewGroup.layout(ViewGroup.java:5579)
            at android.widget.FrameLayout.layoutChildren(FrameLayout.java:396)
            at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
            at android.view.View.layout(View.java:16975)
            at android.view.ViewGroup.layout(ViewGroup.java:5579)
            at android.widget.LinearLayout.setChildFrame(LinearLayout.java:2001)
            at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1844)
            at android.widget.LinearLayout.onLayout(LinearLayout.java:1753)
            at android.view.View.layout(View.java:16975)
            at android.view.ViewGroup.layout(ViewGroup.java:5579)
            at android.widget.FrameLayout.layoutChildren(FrameLayout.java:396)
            at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
            at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2755)
            at android.view.View.layout(View.java:16975)
            at android.view.ViewGroup.layout(ViewGroup.java:5579)
            at 
    android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2552)
            at 
 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2255)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1321)
            at 
 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6737)
            at 
 android.view.Choreographer$CallbackRecord.run(Choreographer.java:894)
            at android.view.Choreographer.doCallbacks(Choreographer.java:696)
            at android.view.Choreographer.doFrame(Choreographer.java:631)
            at 
 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:880)
            at android.os.Handler.handleCallback(Handler.java:815)
            at android.os.Handler.dispatchMessage(Handler.java:104)
            at android.os.Looper.loop(Looper.java:207)
            at android.app.ActivityThread.main(ActivityThread.java:5776)
            at java.lang.reflect.Method.invoke(Nativ
    I/Process: Sending signal. PID: 27369 SIG: 9
    Application terminated.

FirstScreen.kt

package com.alferdize.pythoniz
import android.annotation.SuppressLint
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.activity_first.*

class FirstScreen : AppCompatActivity(){
    @SuppressLint("WrongConstant")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_first)

        val layoutManager = LinearLayoutManager(this)
        layoutManager.orientation = LinearLayoutManager.VERTICAL
        recyclerView.layoutManager = layoutManager
        val adapter = FoodAdapter(this, Supplier.food)
        recyclerView.adapter = adapter
    }
}

list_view.xml file:

<?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.CardView
      xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
          xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            card_view:cardCornerRadius="5dp">

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/white"
                android:baselineAligned="false"
                android:orientation="horizontal"
                android:padding="5dp">

            <TextView
                    android:id="@+id/txvTitle"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:text="@string/title"
                    android:textColor="#616161"
                    android:textSize="18sp"
                    android:textStyle="bold" 
                    tools:ignore="HardcodedText"/>

            <ImageView
                    android:id="@+id/imgShare"
                    android:layout_width="30dp"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:src="@android:drawable/ic_menu_share"                    android:tint="#eeeeee"android:contentDescription="@string/todo" tools:ignore="ContentDescription"/>

        </LinearLayout>

    </android.support.v7.widget.CardView>

FoodAdapter.kt

package com.alferdize.pythoniz

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.alferdize.pythoniz.Supplier.food
import kotlinx.android.synthetic.main.list_item.view.*

class FoodAdapter(val context: Context,val food: List<Food>) : RecyclerView.Adapter<FoodAdapter.MyViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
        val view = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false)
        return MyViewHolder(view)
    }

    override fun getItemCount(): Int {
        return food.size
    }

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        val foody = food[position]
        holder.setData(foody, position)
    }

    inner class MyViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){

        fun setData(foody: Food?, position: Int){
            itemView.txvTitle.text = foody!!.title
        }

    }
}

app/build.gradle

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.alferdize.pythoniz"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags "-std=c++14"
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    implementation 'androidx.core:core-ktx:1.1.0-alpha03'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'androidx.cardview:cardview:1.0.0-rc02'

}

activity_first.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
                                                   android:layout_width="match_parent"
                                                   android:layout_height="match_parent">
    <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    </androidx.recyclerview.widget.RecyclerView>


</LinearLayout>

1 Answer 1

3

You use androidX so

Change this

<android.support.v7.widget.CardView
      xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

      <!--other codes-->

</android.support.v7.widget.CardView>

To this

<androidx.cardview.widget.CardView
         xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:card_view="http://schemas.android.com/apk/res-auto"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

       <!--other codes-->

 </androidx.cardview.widget.CardView>
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.