Android应用。连接到firebase并希望从IT应用程序中获取数据崩溃

发布于 2025-02-08 17:10:42 字数 26292 浏览 1 评论 0原文

我正在尝试构建一个应用程序,该应用程序从Firebase获取数据,并在通过Word搜索时在持卡人中显示信息,但是当我尝试打开实现代码的窗口时,我会使该应用程序崩溃。任何建议和帮助都会做。 更详细。 基本上,我在第一页(MainActivity.java)上创建了按钮,并制作了一个按钮来切换一个新窗口,您可以在其中实时从firebase搜索食物(datasearch.java)。 一旦我按下按钮到搜索窗口,应用程序就会崩溃而没有任何错误消息。

MainActivity:

package com.example.kursinis;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.ImageView;


import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {

    ImageView logo;
    Button mKmi_btn,mDatasearch_btn,mLogdata_btn;
    CalendarView mCalendar;
    DatabaseReference ref;




    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        logo = findViewById(R.id.logo);
        mKmi_btn = findViewById(R.id.kmi_btn);
        mDatasearch_btn = findViewById(R.id.datasearch_btn);
        mLogdata_btn = findViewById(R.id.logdata_btn);
        mCalendar = findViewById(R.id.calendarView3);

        mDatasearch_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(),datasearch.class));
            }
        });

        mLogdata_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(),logdata.class));
            }
        });

        mKmi_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(),kmi.class));
            }
        });

/*    Insert calendar clicks for every day to see logged results      */


    }


    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
        return super.onCreateOptionsMenu(menu);
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id==R.id.action_logout) {
            logout();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void logout() {
        FirebaseAuth.getInstance().signOut();
        startActivity(new Intent(getApplicationContext(),login.class));
        finish();
    }



}

DataSearch Java


package com.example.kursinis;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.widget.SearchView;
import android.widget.Toast;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.Locale;

public class datasearch extends AppCompatActivity {
    DatabaseReference ref;
    ArrayList<produktas> list;
    RecyclerView recyclerView;
    SearchView searchView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_datasearch);
        ref = FirebaseDatabase.getInstance().getReference().child("https://link_to_ref/");
        recyclerView = findViewById(R.id.rec_view);
        searchView = findViewById(R.id.search_data);

    }

    @Override
    protected void onStart() {
        super.onStart();
        if (ref!=null){
            ref.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    if (dataSnapshot.exists()){
                        list = new ArrayList<>();
                        for (DataSnapshot ds : dataSnapshot.getChildren()){
                            list.add(ds.getValue(produktas.class));
                        }
                        AdapterClass adapterClass = new AdapterClass(list);
                        recyclerView.setAdapter(adapterClass);

                    }

                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {
                    Toast.makeText(datasearch.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();

                }
            });
        }
        if (searchView != null){
            searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String s) {
                    return false;
                }

                @Override
                public boolean onQueryTextChange(String s) {
                    search(s);
                    return true;
                }
            });
        }
    }
    private void search(String str){
        ArrayList<produktas> sList = new ArrayList<>();
        for (produktas object : list){
            if (object.getKalorijos().toLowerCase().contains(str.toLowerCase())){
                sList.add(object);
            }

            if (object.getAngliavandianiai().toLowerCase().contains(str.toLowerCase())){
                sList.add(object);
            }

            if (object.getBaltymai().toLowerCase().contains(str.toLowerCase())){
                sList.add(object);
            }

            if (object.getRiebalai().toLowerCase().contains(str.toLowerCase())){
                sList.add(object);
            }
        }
        AdapterClass adapterClass = new AdapterClass(sList);
        recyclerView.setAdapter(adapterClass);
    }
}

AdapterClass

 package com.example.kursinis;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

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

import java.util.ArrayList;

public class AdapterClass extends RecyclerView.Adapter<AdapterClass.MyViewHolder>{

    ArrayList<produktas> list;
    public AdapterClass(ArrayList<produktas> list){
        this.list = list;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardholder,viewGroup,false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
        myViewHolder.id.setText(list.get(i).getMaisto_prod());
        myViewHolder.desc1.setText(list.get(i).getKalorijos());
        myViewHolder.desc2.setText(list.get(i).getAngliavandianiai());
        myViewHolder.desc3.setText(list.get(i).getBaltymai());
        myViewHolder.desc4.setText(list.get(i).getRiebalai());
    }

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

    class MyViewHolder extends RecyclerView.ViewHolder {
        TextView id,desc1,desc2,desc3,desc4;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            id = itemView.findViewById(R.id.prod_name);
            desc1 = itemView.findViewById(R.id.prod_desc1);
            desc2 = itemView.findViewById(R.id.prod_desc2);
            desc3 = itemView.findViewById(R.id.prod_desc3);
            desc4 = itemView.findViewById(R.id.prod_desc4);


        }
    }
}

product.java

package com.example.kursinis;

public class produktas {
    private String angliavandianiai;
    private String baltymai;
    private String kalorijos;
    private String maisto_prod;
    private String riebalai;


    public produktas(String angliavandianiai, String baltymai, String kalorijos, String maisto_prod, String riebalai) {
        this.angliavandianiai = angliavandianiai;
        this.baltymai = baltymai;
        this.kalorijos = kalorijos;
        this.maisto_prod = maisto_prod;
        this.riebalai = riebalai;
    }

    public String getAngliavandianiai() {
        return angliavandianiai;
    }

    public void setAngliavandianiai(String angliavandianiai) {
        this.angliavandianiai = angliavandianiai;
    }

    public String getBaltymai() {
        return baltymai;
    }

    public void setBaltymai(String baltymai) {
        this.baltymai = baltymai;
    }

    public String getKalorijos() {
        return kalorijos;
    }

    public void setKalorijos(String kalorijos) {
        this.kalorijos = kalorijos;
    }

    public String getMaisto_prod() {
        return maisto_prod;
    }

    public void setMaisto_prod(String maisto_prod) {
        this.maisto_prod = maisto_prod;
    }

    public String getRiebalai() {
        return riebalai;
    }

    public void setRiebalai(String riebalai) {
        this.riebalai = riebalai;
    }
}

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.kursinis">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Kursinis">
        <activity
            android:name=".calendar"
            android:exported="false" />
        <activity
            android:name=".kmi"
            android:exported="false" />
        <activity
            android:name=".logdata"
            android:exported="false" />
        <activity
            android:name=".datasearch"
            android:exported="false" />
        <activity
            android:name=".login"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".registration"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>

Gradel

plugins {
    id 'com.android.application'
    id 'com.google.gms.google-services'
}

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.example.kursinis"
        minSdk 26
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    buildFeatures {
        viewBinding true
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.6.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation 'androidx.navigation:navigation-fragment:2.4.2'
    implementation 'androidx.navigation:navigation-ui:2.4.2'
    implementation 'com.google.firebase:firebase-database:20.0.5'
    implementation 'com.google.firebase:firebase-firestore:24.1.2'
    implementation 'com.google.firebase:firebase-auth:21.0.5'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation platform('com.google.firebase:firebase-bom:30.1.0')
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-core:21.0.0'

}

我在应用程序崩溃时没有任何错误,但是我在数据库Inspector中唯一发现的是Google_app_measurement_local.db(已关闭)。 欢迎任何帮助和答案,我将非常感谢。

编辑:

我将DataSearch.java中的REF链接更改为我从Firebase Realtime数据库创建的“食物”的名称,但是唯一修复了它的东西现在可以使用搜索栏打开窗口,但是当我尝试在我尝试输入时至少一封信再次崩溃。

编辑添加了logcat

2022-06-19 22:11:45.729 2067-2072/com.example.kursinis I/zygote: After code cache collection, code=469KB, data=239KB
2022-06-19 22:11:45.767 2067-2067/com.example.kursinis E/RecyclerView: No adapter attached; skipping layout
2022-06-19 22:11:45.807 2067-2124/com.example.kursinis D/EGL_emulation: eglMakeCurrent: 0xa10061a0: ver 2 0 (tinfo 0xa10032f0)
2022-06-19 22:11:45.845 2067-2124/com.example.kursinis I/chatty: uid=10089(u0_a89) RenderThread identical 1 line
2022-06-19 22:11:45.857 2067-2124/com.example.kursinis D/EGL_emulation: eglMakeCurrent: 0xa10061a0: ver 2 0 (tinfo 0xa10032f0)
2022-06-19 22:11:45.906 2067-2124/com.example.kursinis D/OpenGLRenderer: endAllActiveAnimators on 0x84068c80 (RippleDrawable) with handle 0xa10030d0
2022-06-19 22:11:46.456 2067-2165/com.example.kursinis W/PersistentConnection: pc_0 - Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Database lives in a different region. Please change your database URL to https://kursinis-kcal......
2022-06-19 22:11:50.760 2067-2103/com.example.kursinis V/FA: Inactivity, disconnecting from the service
2022-06-19 22:11:50.991 2067-2067/com.example.kursinis W/View: dispatchProvideAutofillStructure(): not laid out, ignoring
2022-06-19 22:11:50.993 2067-2067/com.example.kursinis W/View: dispatchProvideAutofillStructure(): not laid out, ignoring
2022-06-19 22:11:50.997 2067-2067/com.example.kursinis I/AssistStructure: Flattened final assist data: 2208 bytes, containing 1 windows, 9 views
2022-06-19 22:11:50.997 2067-2072/com.example.kursinis I/zygote: Do partial code cache collection, code=478KB, data=260KB
2022-06-19 22:11:50.998 2067-2072/com.example.kursinis I/zygote: After code cache collection, code=478KB, data=260KB
2022-06-19 22:11:50.998 2067-2072/com.example.kursinis I/zygote: Increasing code cache capacity to 2MB
2022-06-19 22:11:51.252 2067-2067/com.example.kursinis E/RecyclerView: No adapter attached; skipping layout
2022-06-19 22:11:51.467 2067-2067/com.example.kursinis E/InputEventSender: Exception dispatching finished signal.
2022-06-19 22:11:51.467 2067-2067/com.example.kursinis E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
2022-06-19 22:11:51.469 2067-2067/com.example.kursinis E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
        at com.example.kursinis.datasearch.search(datasearch.java:79)
        at com.example.kursinis.datasearch.access$000(datasearch.java:20)
        at com.example.kursinis.datasearch$2.onQueryTextChange(datasearch.java:71)
        at android.widget.SearchView.onTextChanged(SearchView.java:1250)
        at android.widget.SearchView.-wrap9(Unknown Source:0)
        at android.widget.SearchView$8.onTextChanged(SearchView.java:1776)
        at android.widget.TextView.sendOnTextChanged(TextView.java:9359)
        at android.widget.TextView.handleTextChanged(TextView.java:9446)
        at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:11904)
        at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1252)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:573)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:504)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:502)
        at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:228)
        at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:141)
        at android.widget.TextView.doKeyDown(TextView.java:7316)
        at android.widget.TextView.onKeyDown(TextView.java:7093)
        at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:831)
        at android.view.KeyEvent.dispatch(KeyEvent.java:2688)
        at android.view.View.dispatchKeyEvent(View.java:11662)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:437)
        at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1818)
        at androidx.core.view.KeyEventDispatcher.activitySuperDispatchKeyEventPre28(KeyEventDispatcher.java:130)
        at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:87)
        at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
        at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:569)
        at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
        at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3054)
        at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:351)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4714)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4586)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4274)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155)
        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4331)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.
2022-06-19 22:11:51.469 2067-2067/com.example.kursinis D/AndroidRuntime: Shutting down VM
2022-06-19 22:11:51.471 2067-2067/com.example.kursinis E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.kursinis, PID: 2067
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
        at com.example.kursinis.datasearch.search(datasearch.java:79)
        at com.example.kursinis.datasearch.access$000(datasearch.java:20)
        at com.example.kursinis.datasearch$2.onQueryTextChange(datasearch.java:71)
        at android.widget.SearchView.onTextChanged(SearchView.java:1250)
        at android.widget.SearchView.-wrap9(Unknown Source:0)
        at android.widget.SearchView$8.onTextChanged(SearchView.java:1776)
        at android.widget.TextView.sendOnTextChanged(TextView.java:9359)
        at android.widget.TextView.handleTextChanged(TextView.java:9446)
        at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:11904)
        at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1252)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:573)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:504)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:502)
        at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:228)
        at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:141)
        at android.widget.TextView.doKeyDown(TextView.java:7316)
        at android.widget.TextView.onKeyDown(TextView.java:7093)
        at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:831)
        at android.view.KeyEvent.dispatch(KeyEvent.java:2688)
        at android.view.View.dispatchKeyEvent(View.java:11662)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:437)
        at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1818)
        at androidx.core.view.KeyEventDispatcher.activitySuperDispatchKeyEventPre28(KeyEventDispatcher.java:130)
        at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:87)
        at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
        at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:569)
        at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
        at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3054)
        at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:351)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4714)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4586)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4274)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155)
        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4331)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
2022-06-19 22:11:51.471 2067-2067/com.example.kursinis E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4307)
        at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4468)
        at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2435)
        at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1998)
        at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1989)
        at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2412)
        at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:325)
        at android.os.Looper.loop(Looper.java:142)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

I'm trying to build an app which fetches data from firebase and displays info in cardholders when searched by word but when I try to open the window where the code is implemented I get the app crashed. Any advice and help will do.
More in detail.
Basically, I created buttons on the first page(MainActivity.java) and made a button to toggle a new window where you can search foods from firebase in real time (datasearch.java).
As soon as I press the button to the search window the app crashes without any error messages.

MainActivity:

package com.example.kursinis;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.ImageView;


import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {

    ImageView logo;
    Button mKmi_btn,mDatasearch_btn,mLogdata_btn;
    CalendarView mCalendar;
    DatabaseReference ref;




    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        logo = findViewById(R.id.logo);
        mKmi_btn = findViewById(R.id.kmi_btn);
        mDatasearch_btn = findViewById(R.id.datasearch_btn);
        mLogdata_btn = findViewById(R.id.logdata_btn);
        mCalendar = findViewById(R.id.calendarView3);

        mDatasearch_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(),datasearch.class));
            }
        });

        mLogdata_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(),logdata.class));
            }
        });

        mKmi_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(),kmi.class));
            }
        });

/*    Insert calendar clicks for every day to see logged results      */


    }


    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
        return super.onCreateOptionsMenu(menu);
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id==R.id.action_logout) {
            logout();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    private void logout() {
        FirebaseAuth.getInstance().signOut();
        startActivity(new Intent(getApplicationContext(),login.class));
        finish();
    }



}

datasearch java


package com.example.kursinis;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.widget.SearchView;
import android.widget.Toast;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.Locale;

public class datasearch extends AppCompatActivity {
    DatabaseReference ref;
    ArrayList<produktas> list;
    RecyclerView recyclerView;
    SearchView searchView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_datasearch);
        ref = FirebaseDatabase.getInstance().getReference().child("https://link_to_ref/");
        recyclerView = findViewById(R.id.rec_view);
        searchView = findViewById(R.id.search_data);

    }

    @Override
    protected void onStart() {
        super.onStart();
        if (ref!=null){
            ref.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    if (dataSnapshot.exists()){
                        list = new ArrayList<>();
                        for (DataSnapshot ds : dataSnapshot.getChildren()){
                            list.add(ds.getValue(produktas.class));
                        }
                        AdapterClass adapterClass = new AdapterClass(list);
                        recyclerView.setAdapter(adapterClass);

                    }

                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {
                    Toast.makeText(datasearch.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();

                }
            });
        }
        if (searchView != null){
            searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String s) {
                    return false;
                }

                @Override
                public boolean onQueryTextChange(String s) {
                    search(s);
                    return true;
                }
            });
        }
    }
    private void search(String str){
        ArrayList<produktas> sList = new ArrayList<>();
        for (produktas object : list){
            if (object.getKalorijos().toLowerCase().contains(str.toLowerCase())){
                sList.add(object);
            }

            if (object.getAngliavandianiai().toLowerCase().contains(str.toLowerCase())){
                sList.add(object);
            }

            if (object.getBaltymai().toLowerCase().contains(str.toLowerCase())){
                sList.add(object);
            }

            if (object.getRiebalai().toLowerCase().contains(str.toLowerCase())){
                sList.add(object);
            }
        }
        AdapterClass adapterClass = new AdapterClass(sList);
        recyclerView.setAdapter(adapterClass);
    }
}

Adapterclass

 package com.example.kursinis;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

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

import java.util.ArrayList;

public class AdapterClass extends RecyclerView.Adapter<AdapterClass.MyViewHolder>{

    ArrayList<produktas> list;
    public AdapterClass(ArrayList<produktas> list){
        this.list = list;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardholder,viewGroup,false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
        myViewHolder.id.setText(list.get(i).getMaisto_prod());
        myViewHolder.desc1.setText(list.get(i).getKalorijos());
        myViewHolder.desc2.setText(list.get(i).getAngliavandianiai());
        myViewHolder.desc3.setText(list.get(i).getBaltymai());
        myViewHolder.desc4.setText(list.get(i).getRiebalai());
    }

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

    class MyViewHolder extends RecyclerView.ViewHolder {
        TextView id,desc1,desc2,desc3,desc4;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            id = itemView.findViewById(R.id.prod_name);
            desc1 = itemView.findViewById(R.id.prod_desc1);
            desc2 = itemView.findViewById(R.id.prod_desc2);
            desc3 = itemView.findViewById(R.id.prod_desc3);
            desc4 = itemView.findViewById(R.id.prod_desc4);


        }
    }
}

product.java

package com.example.kursinis;

public class produktas {
    private String angliavandianiai;
    private String baltymai;
    private String kalorijos;
    private String maisto_prod;
    private String riebalai;


    public produktas(String angliavandianiai, String baltymai, String kalorijos, String maisto_prod, String riebalai) {
        this.angliavandianiai = angliavandianiai;
        this.baltymai = baltymai;
        this.kalorijos = kalorijos;
        this.maisto_prod = maisto_prod;
        this.riebalai = riebalai;
    }

    public String getAngliavandianiai() {
        return angliavandianiai;
    }

    public void setAngliavandianiai(String angliavandianiai) {
        this.angliavandianiai = angliavandianiai;
    }

    public String getBaltymai() {
        return baltymai;
    }

    public void setBaltymai(String baltymai) {
        this.baltymai = baltymai;
    }

    public String getKalorijos() {
        return kalorijos;
    }

    public void setKalorijos(String kalorijos) {
        this.kalorijos = kalorijos;
    }

    public String getMaisto_prod() {
        return maisto_prod;
    }

    public void setMaisto_prod(String maisto_prod) {
        this.maisto_prod = maisto_prod;
    }

    public String getRiebalai() {
        return riebalai;
    }

    public void setRiebalai(String riebalai) {
        this.riebalai = riebalai;
    }
}

Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.kursinis">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Kursinis">
        <activity
            android:name=".calendar"
            android:exported="false" />
        <activity
            android:name=".kmi"
            android:exported="false" />
        <activity
            android:name=".logdata"
            android:exported="false" />
        <activity
            android:name=".datasearch"
            android:exported="false" />
        <activity
            android:name=".login"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".registration"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>

Gradel

plugins {
    id 'com.android.application'
    id 'com.google.gms.google-services'
}

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.example.kursinis"
        minSdk 26
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    buildFeatures {
        viewBinding true
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.6.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation 'androidx.navigation:navigation-fragment:2.4.2'
    implementation 'androidx.navigation:navigation-ui:2.4.2'
    implementation 'com.google.firebase:firebase-database:20.0.5'
    implementation 'com.google.firebase:firebase-firestore:24.1.2'
    implementation 'com.google.firebase:firebase-auth:21.0.5'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation platform('com.google.firebase:firebase-bom:30.1.0')
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-core:21.0.0'

}

As well I don't get any error upon app crash, but the only thing I found in Database Inspector that the google_app_measurement_local.db (closed).
Any help and answers are welcome and I will be very thankful.

EDITED:

I changed the ref link in datasearch.java to a name which I created "food" from firebase realtime database, but the only thing that got fixed it that now the window opens up with the search bar but when I try to enter at least one letter it crashes again.

EDITED added logcat

2022-06-19 22:11:45.729 2067-2072/com.example.kursinis I/zygote: After code cache collection, code=469KB, data=239KB
2022-06-19 22:11:45.767 2067-2067/com.example.kursinis E/RecyclerView: No adapter attached; skipping layout
2022-06-19 22:11:45.807 2067-2124/com.example.kursinis D/EGL_emulation: eglMakeCurrent: 0xa10061a0: ver 2 0 (tinfo 0xa10032f0)
2022-06-19 22:11:45.845 2067-2124/com.example.kursinis I/chatty: uid=10089(u0_a89) RenderThread identical 1 line
2022-06-19 22:11:45.857 2067-2124/com.example.kursinis D/EGL_emulation: eglMakeCurrent: 0xa10061a0: ver 2 0 (tinfo 0xa10032f0)
2022-06-19 22:11:45.906 2067-2124/com.example.kursinis D/OpenGLRenderer: endAllActiveAnimators on 0x84068c80 (RippleDrawable) with handle 0xa10030d0
2022-06-19 22:11:46.456 2067-2165/com.example.kursinis W/PersistentConnection: pc_0 - Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Database lives in a different region. Please change your database URL to https://kursinis-kcal......
2022-06-19 22:11:50.760 2067-2103/com.example.kursinis V/FA: Inactivity, disconnecting from the service
2022-06-19 22:11:50.991 2067-2067/com.example.kursinis W/View: dispatchProvideAutofillStructure(): not laid out, ignoring
2022-06-19 22:11:50.993 2067-2067/com.example.kursinis W/View: dispatchProvideAutofillStructure(): not laid out, ignoring
2022-06-19 22:11:50.997 2067-2067/com.example.kursinis I/AssistStructure: Flattened final assist data: 2208 bytes, containing 1 windows, 9 views
2022-06-19 22:11:50.997 2067-2072/com.example.kursinis I/zygote: Do partial code cache collection, code=478KB, data=260KB
2022-06-19 22:11:50.998 2067-2072/com.example.kursinis I/zygote: After code cache collection, code=478KB, data=260KB
2022-06-19 22:11:50.998 2067-2072/com.example.kursinis I/zygote: Increasing code cache capacity to 2MB
2022-06-19 22:11:51.252 2067-2067/com.example.kursinis E/RecyclerView: No adapter attached; skipping layout
2022-06-19 22:11:51.467 2067-2067/com.example.kursinis E/InputEventSender: Exception dispatching finished signal.
2022-06-19 22:11:51.467 2067-2067/com.example.kursinis E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
2022-06-19 22:11:51.469 2067-2067/com.example.kursinis E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
        at com.example.kursinis.datasearch.search(datasearch.java:79)
        at com.example.kursinis.datasearch.access$000(datasearch.java:20)
        at com.example.kursinis.datasearch$2.onQueryTextChange(datasearch.java:71)
        at android.widget.SearchView.onTextChanged(SearchView.java:1250)
        at android.widget.SearchView.-wrap9(Unknown Source:0)
        at android.widget.SearchView$8.onTextChanged(SearchView.java:1776)
        at android.widget.TextView.sendOnTextChanged(TextView.java:9359)
        at android.widget.TextView.handleTextChanged(TextView.java:9446)
        at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:11904)
        at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1252)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:573)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:504)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:502)
        at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:228)
        at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:141)
        at android.widget.TextView.doKeyDown(TextView.java:7316)
        at android.widget.TextView.onKeyDown(TextView.java:7093)
        at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:831)
        at android.view.KeyEvent.dispatch(KeyEvent.java:2688)
        at android.view.View.dispatchKeyEvent(View.java:11662)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:437)
        at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1818)
        at androidx.core.view.KeyEventDispatcher.activitySuperDispatchKeyEventPre28(KeyEventDispatcher.java:130)
        at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:87)
        at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
        at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:569)
        at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
        at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3054)
        at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:351)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4714)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4586)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4274)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155)
        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4331)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.
2022-06-19 22:11:51.469 2067-2067/com.example.kursinis D/AndroidRuntime: Shutting down VM
2022-06-19 22:11:51.471 2067-2067/com.example.kursinis E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.kursinis, PID: 2067
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
        at com.example.kursinis.datasearch.search(datasearch.java:79)
        at com.example.kursinis.datasearch.access$000(datasearch.java:20)
        at com.example.kursinis.datasearch$2.onQueryTextChange(datasearch.java:71)
        at android.widget.SearchView.onTextChanged(SearchView.java:1250)
        at android.widget.SearchView.-wrap9(Unknown Source:0)
        at android.widget.SearchView$8.onTextChanged(SearchView.java:1776)
        at android.widget.TextView.sendOnTextChanged(TextView.java:9359)
        at android.widget.TextView.handleTextChanged(TextView.java:9446)
        at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:11904)
        at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1252)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:573)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:504)
        at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:502)
        at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:228)
        at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:141)
        at android.widget.TextView.doKeyDown(TextView.java:7316)
        at android.widget.TextView.onKeyDown(TextView.java:7093)
        at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:831)
        at android.view.KeyEvent.dispatch(KeyEvent.java:2688)
        at android.view.View.dispatchKeyEvent(View.java:11662)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1827)
        at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:437)
        at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1818)
        at androidx.core.view.KeyEventDispatcher.activitySuperDispatchKeyEventPre28(KeyEventDispatcher.java:130)
        at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:87)
        at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
        at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:569)
        at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
        at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3054)
        at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:351)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4714)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4586)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4274)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155)
        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4331)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
2022-06-19 22:11:51.471 2067-2067/com.example.kursinis E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4155)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4128)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4181)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4147)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4307)
        at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4468)
        at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2435)
        at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1998)
        at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1989)
        at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2412)
        at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:325)
        at android.os.Looper.loop(Looper.java:142)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花海 2025-02-15 17:10:42

在您的搜索函数上,值listnull。要解决此问题,您需要检查list是否是null

private void search(String str){
    ArrayList<produktas> sList = new ArrayList<>();
    //At here you need to check list is null or not and if got any list or not.
    if (list != null && list.size() > 0) {
       for (produktas object : list){
          if (object.getKalorijos().toLowerCase().contains(str.toLowerCase())){
             sList.add(object);
          }

          if (object.getAngliavandianiai().toLowerCase().contains(str.toLowerCase())){
             sList.add(object);
          }

          if (object.getBaltymai().toLowerCase().contains(str.toLowerCase())){
             sList.add(object);
          }

          if (object.getRiebalai().toLowerCase().contains(str.toLowerCase())){
             sList.add(object);
          }
       }
    dapterClass adapterClass = new AdapterClass(sList);
    recyclerView.setAdapter(adapterClass);
    }
}

At your search function, the value list is null. To solve this problem, you need to check if the list is null or not.

private void search(String str){
    ArrayList<produktas> sList = new ArrayList<>();
    //At here you need to check list is null or not and if got any list or not.
    if (list != null && list.size() > 0) {
       for (produktas object : list){
          if (object.getKalorijos().toLowerCase().contains(str.toLowerCase())){
             sList.add(object);
          }

          if (object.getAngliavandianiai().toLowerCase().contains(str.toLowerCase())){
             sList.add(object);
          }

          if (object.getBaltymai().toLowerCase().contains(str.toLowerCase())){
             sList.add(object);
          }

          if (object.getRiebalai().toLowerCase().contains(str.toLowerCase())){
             sList.add(object);
          }
       }
    dapterClass adapterClass = new AdapterClass(sList);
    recyclerView.setAdapter(adapterClass);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文