Error with RecyclerView: android.view.InflateException

47 Views Asked by At

I had a problem with RecyclerView, this is the error:

android.view.InflateException: Binary XML file line #62 in com.bryanvalerio.journalapp:layout/journal_item: Binary XML file line #62 in com.bryanvalerio.journalapp:layout/journal_item: Error inflating class <unknown>
                                                                                                    Caused by: android.view.InflateException: Binary XML file line #62 in com.bryanvalerio.journalapp:layout/journal_item: Error inflating class <unknown>
                                                                                                    Caused by: java.lang.reflect.InvocationTargetException
                                                                                                        at java.lang.reflect.Constructor.newInstance0(Native Method)
                                                                                                        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
                                                                                                        at android.view.LayoutInflater.createView(LayoutInflater.java:882)
                                                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1034)
                                                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:989)
                                                                                                        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1151)
                                                                                                        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1112)
                                                                                                        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1154)
                                                                                                        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1112)
                                                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:700)
                                                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:544)
                                                                                                        at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:126)
                                                                                                        at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:95)
                                                                                                        at com.bryanvalerio.journalapp.recyclerview.adapter.JournalAdapter.onCreateViewHolder(JournalAdapter.java:42)
                                                                                                        at com.bryanvalerio.journalapp.recyclerview.adapter.JournalAdapter.onCreateViewHolder(JournalAdapter.java:24)
                                                                                                        at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078)
                                                                                                        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235)
                                                                                                        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
                                                                                                        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
                                                                                                        at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
                                                                                                        at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
                                                                                                        at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
                                                                                                        at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
                                                                                                        at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
                                                                                                        at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
                                                                                                        at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
                                                                                                        at android.view.View.layout(View.java:25737)
                                                                                                        at android.view.ViewGroup.layout(ViewGroup.java:6818)
                                                                                                        at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873)
                                                                                                        at android.view.View.layout(View.java:25737)
                                                                                                        at android.view.ViewGroup.layout(ViewGroup.java:6818)
                                                                                                        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
                                                                                                        at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
                                                                                                        at android.view.View.layout(View.java:25737)
                                                                                                        at android.view.ViewGroup.layout(ViewGroup.java:6818)
                                                                                                        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
                                                                                                        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
                                                                                                        at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
                                                                                                        at android.view.View.layout(View.java:25737)
                                                                                                        at android.view.ViewGroup.layout(ViewGroup.java:6818)
                                                                                                        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
                                                                                                        at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
                                                                                                        at android.view.View.layout(View.java:25737)
                                                                                                        at android.view.ViewGroup.layout(ViewGroup.java:6818)
                                                                                                        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
                                                                                                        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
                                                                                                        at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
                                                                                                        at android.view.View.layout(View.java:25737)
2024-01-07 15:21:49.520 10753-10753 AndroidRuntime          com.bryanvalerio.journalapp          E      at android.view.ViewGroup.layout(ViewGroup.java:6818)
                                                                                                        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
                                                                                                        at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
                                                                                                        at com.android.internal.policy.DecorView.onLayout(DecorView.java:1075)
                                                                                                        at android.view.View.layout(View.java:25737)
                                                                                                        at android.view.ViewGroup.layout(ViewGroup.java:6818)
                                                                                                        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:5193)
                                                                                                        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4466)
                                                                                                        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3239)
                                                                                                        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11197)
                                                                                                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1650)
                                                                                                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1659)
                                                                                                        at android.view.Choreographer.doCallbacks(Choreographer.java:1129)
                                                                                                        at android.view.Choreographer.doFrame(Choreographer.java:1055)
                                                                                                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1622)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                        at android.os.Looper.loop(Looper.java:319)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8893)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    at ...

I don't know why. I don't understand it

I tried using the View instead of databinding, but not worked. I tried to change the theme. I search an error in the item file, but nothing. If you can help me you would be doing me a great favor. Thank you in advance

Here the adapter:

package com.bryanvalerio.journalapp.recyclerview.adapter;

import android.content.Context;
import android.text.format.DateUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;

import com.bryanvalerio.journalapp.R;
import com.bryanvalerio.journalapp.databinding.JournalItemBinding;
import com.bryanvalerio.journalapp.recyclerview.model.Journal;
import com.bumptech.glide.Glide;
import com.google.android.material.floatingactionbutton.FloatingActionButton;

import java.util.List;
import java.util.Objects;

public class JournalAdapter extends RecyclerView.Adapter<JournalAdapter.ViewHolder> {
    private Context context;
    private List<Journal> journals;

    public JournalAdapter(Context context, List<Journal> journals) {
        this.context = context;
        this.journals = journals;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        /*View view = LayoutInflater.from(context)
                .inflate(R.layout.journal_item, parent, false);
*/


        return new ViewHolder(
                DataBindingUtil.inflate(
                        LayoutInflater.from(context),
                        R.layout.journal_item,
                        parent,
                        false)
        );

    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        Journal currentJournal = journals.get(position);
        String timeAgo = (String) DateUtils.getRelativeTimeSpanString(
                currentJournal.getTimeAdded().getSeconds() * 1000
        );

        holder.binding.title.setText(currentJournal.getTitle());
        holder.binding.user.setText(currentJournal.getUserName());
        holder.binding.description.setText(currentJournal.getThoughts());
        holder.binding.dateCreated.setText(timeAgo);

        Glide.with(context.getApplicationContext())
                .load(currentJournal.getImageUrl())
                .fitCenter()
                .into(holder.binding.image);


        /*holder.dateCreated.setText(timeAgo);
        holder.title.setText(currentJournal.getTitle());
        holder.description.setText(currentJournal.getThoughts());
        holder.user.setText(currentJournal.getUserName());

        Glide.with(context)
                .load(currentJournal.getImageUrl())
                .fitCenter()
                .into(holder.image);

         */
    }

    @Override
    public int getItemCount() {
        return journals.size();
    }


    protected class ViewHolder extends RecyclerView.ViewHolder{
        private JournalItemBinding binding;

        public ViewHolder(@NonNull JournalItemBinding binding) {
            super(binding.getRoot());
            this.binding = binding;

            this.binding.shareButton.setOnClickListener(view -> {
                // TODO: Share the post
            });
            }

/*
        private ImageView image;
        private TextView title;
        private FloatingActionButton shareButton;
        private TextView description;
        private TextView user;
        private TextView dateCreated;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);

            image = itemView.findViewById(R.id.image);
            title = itemView.findViewById(R.id.title);
            shareButton = itemView.findViewById(R.id.shareButton);
            description = itemView.findViewById(R.id.description);
            user = itemView.findViewById(R.id.user);
            dateCreated = itemView.findViewById(R.id.dateCreated);
        }

 */
    }
}

Here the journal_item.xml file:

<?xml version="1.0" encoding="utf-8"?>

<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/application_color2"
        app:cardCornerRadius="30dp"
        android:layout_margin="10dp"
        android:padding="30dp">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/application_color2">

            <ImageView
                android:id="@+id/image"
                android:layout_width="match_parent"
                android:layout_marginStart="30dp"
                android:layout_marginEnd="30dp"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="2dp"
                android:layout_height="120dp"
                app:layout_constraintBottom_toTopOf="@+id/title"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />


            <TextView
                android:id="@+id/title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="30dp"
                android:layout_marginTop="132dp"
                android:gravity="center"
                android:layout_marginEnd="10dp"
                android:text="Title"
                android:textColor="@color/white"
                android:textSize="40sp"
                android:textStyle="bold"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <com.google.android.material.floatingactionbutton.FloatingActionButton
                android:id="@+id/shareButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="16dp"
                android:contentDescription="share"
                android:layout_marginBottom="8dp"
                android:backgroundTint="@color/application_color"
                android:src="@android:drawable/ic_menu_share"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent" />


            <TextView
                android:id="@+id/description"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="30dp"
                android:paddingStart="5dp"
                android:layout_marginTop="15dp"
                android:text="Description"
                android:maxWidth="250sp"
                android:textColor="@color/white"
                android:textSize="20sp"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/title" />

            <TextView
                android:id="@+id/user"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="30dp"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="16dp"
                android:gravity="center"
                android:maxWidth="170sp"
                android:text="by: userName"
                android:textColor="@color/application_color"
                android:textSize="18sp"
                android:textStyle="italic|bold"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/description"
                app:layout_constraintVertical_bias="1.0" />

            <TextView
                android:layout_marginBottom="5dp"
                android:layout_marginTop="10dp"
                android:id="@+id/dateCreated"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="30dp"
                android:maxWidth="170sp"
                android:text="date"
                android:layout_marginEnd="10dp"
                android:textColor="@color/application_color"
                android:textSize="18sp"
                android:textStyle="italic"
                app:layout_constraintBottom_toTopOf="@+id/user"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/description"
                app:layout_constraintVertical_bias="1.0" />

        </androidx.constraintlayout.widget.ConstraintLayout>


    </androidx.cardview.widget.CardView>

</layout>

Thank you in advance

0

There are 0 best solutions below