I am using firebase as my database for my app which is an chatting app. And my app is crashing whenever I try to login or sign up to my app main activity the app crashes automatically.
MainActivity.java
package com.vortexv.vconnect;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.firebase.Firebase;
import com.google.firebase.auth.FirebaseAuth;
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;
public class MainActivity extends AppCompatActivity {
FirebaseAuth auth;
RecyclerView mainUserRecyclerView;
UserAdapter adapter;
FirebaseDatabase database;
ArrayList<Users> usersArrayList;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
database = FirebaseDatabase.getInstance();
auth = FirebaseAuth.getInstance();
DatabaseReference reference = database.getReference().child("user");
usersArrayList = new ArrayList<>();
mainUserRecyclerView = (RecyclerView)findViewById(R.id.mainUserRecyclerView);
mainUserRecyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new UserAdapter(MainActivity.this, usersArrayList);
mainUserRecyclerView.setAdapter(adapter);
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot: snapshot.getChildren())
{
Users users = dataSnapshot.getValue(Users.class);
usersArrayList.add(users);
}
adapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
if (auth.getCurrentUser() == null) {
Intent intent = new Intent(MainActivity.this, Login.class);
startActivity(intent);
}
}
}
Users.java
package com.vortexv.vconnect;
public class Users {
String profilepic,mail,userName,password,userID,lastMessage,status;
public Users(String id, String namee, String emaill, String password, String imageuri, String status){
this.userID = id;
this.userName = namee;
this.mail = emaill;
this.password = password;
this.profilepic = imageuri;
this.status = status;
}
public String getProfilepic() {
return profilepic;
}
public void setProfilepic(String profilepic) {
this.profilepic = profilepic;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String getLastMessage() {
return lastMessage;
}
public void setLastMessage(String lastMessage) {
this.lastMessage = lastMessage;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
MainActivity.xml
="1.0"="utf-8"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/main_bg"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/toolBar"
android:layout_width="wrap_content"
android:layout_height="63dp"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="23dp"
android:layout_marginTop="@dimen/_24sdp"
android:layout_marginEnd="25dp"
android:background="@color/white"
android:gravity="right"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="23dp"
android:layout_marginRight="25dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_10sdp"
android:layout_marginLeft="@dimen/_10sdp"
android:layout_weight="1"
android:fontFamily="@font/poppins_semibold"
android:text="Vortex Connect"
android:textColor="@color/black"
android:textSize="@dimen/_20sdp"
android:textStyle="bold" />
<ImageView
android:id="@+id/logout_img"
android:layout_width="@dimen/_50sdp"
android:layout_height="@dimen/_50sdp"
android:layout_gravity="center"
android:layout_marginRight="@dimen/_10sdp"
android:layout_weight="1"
app:srcCompat="@drawable/baseline_logout_24" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mainUserRecyclerView"
android:layout_width="match_parent"
android:layout_height="369dp"
android:layout_below="@id/toolBar"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="7dp"
android:layout_marginLeft="7dp"
android:layout_marginTop="159dp"
android:layout_marginEnd="18dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="114dp" />
<ImageView
android:layout_width="@dimen/_32sdp"
android:layout_height="@dimen/_32sdp"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="@dimen/_72sdp"
android:layout_marginRight="270dp"
android:layout_marginBottom="@dimen/_32sdp"
android:src="@drawable/camera_white_icon" />
<ImageView
android:layout_width="@dimen/_32sdp"
android:layout_height="@dimen/_32sdp"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="@dimen/_138sdp"
android:layout_marginRight="193dp"
android:layout_marginBottom="@dimen/_32sdp"
android:src="@drawable/chats_white_icon" />
<ImageView
android:layout_width="@dimen/_32sdp"
android:layout_height="@dimen/_32sdp"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="@dimen/_200sdp"
android:layout_marginRight="113dp"
android:layout_marginBottom="@dimen/_32sdp"
android:src="@drawable/settings_white_icon" />
</RelativeLayout>
Stack Trace
FATAL EXCEPTION: main Process: com.vortexv.vconnect, PID: 28436
com.google.firebase.database.DatabaseException: Class com.vortexv.vconnect.Users does not define a no-argument constructor. If you are using ProGuard, make sure these constructors are not stripped.
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.deserialize(CustomClassMapper.java:578)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.deserialize(CustomClassMapper.java:571)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:433)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:80)
at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:202)
at com.vortexv.vconnect.MainActivity$1.onDataChange(MainActivity.java:56)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8348)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:582)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
What I have tried:
Logs provided if its helped:
<a href="https://pastebin.com/M9GUQC6k"></a>link - cuz its showing spam on posting page
I am watching a tutorial on youtube to make this app. But his code is working but not mine even i have checked the code thrice.
My app is crashing on my main Activity which is my chat home screen.
I have tired to rewrite the code but my problem is not solving. Please help!!