Задерживается App, когда я ввожу информацию в компьютер в мою активность, где у меня есть listview

LogCat бросает мне эту ошибку:

03-06 14:09:42.618 1933-1933/com.example.usuario.app.myroodent E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.usuario.app.myroodent, PID: 1933
java.lang.IllegalArgumentException: argument 1 should have type java.sql.Timestamp, got java.util.Date
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.google.firebase.firestore.g.zzg$zza.zza(com.google.firebase:firebase-firestore@@17.0.5:690)
    at com.google.firebase.firestore.g.zzg$zza.zza(com.google.firebase:firebase-firestore@@17.0.5:658)
    at com.google.firebase.firestore.g.zzg.zzd(com.google.firebase:firebase-firestore@@17.0.5:487)
    at com.google.firebase.firestore.g.zzg.zza(com.google.firebase:firebase-firestore@@17.0.5:226)
    at com.google.firebase.firestore.g.zzg.zza(com.google.firebase:firebase-firestore@@17.0.5:81)
    at com.google.firebase.firestore.DocumentSnapshot.toObject(com.google.firebase:firebase-firestore@@17.0.5:175)
    at com.google.firebase.firestore.QueryDocumentSnapshot.toObject(com.google.firebase:firebase-firestore@@17.0.5:97)
    at com.google.firebase.firestore.DocumentSnapshot.toObject(com.google.firebase:firebase-firestore@@17.0.5:156)
    at com.google.firebase.firestore.QueryDocumentSnapshot.toObject(com.google.firebase:firebase-firestore@@17.0.5:78)
    at com.example.usuario.app.myroodent.EspeciesActivity$1.onEvent(EspeciesActivity.java:57)
    at com.example.usuario.app.myroodent.EspeciesActivity$1.onEvent(EspeciesActivity.java:47)
    at com.google.firebase.firestore.zzi.onEvent(com.google.firebase:firebase-firestore@@17.0.5:1834)
    at com.google.firebase.firestore.g.zzh.zza(com.google.firebase:firebase-firestore@@17.0.5:28)
    at com.google.firebase.firestore.g.zzi.run(com.google.firebase:firebase-firestore@@17.0.5)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5019)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
    at dalvik.system.NativeStart.main(Native Method)

Это моя активность EspeciesActivity, где меня производит ошибка:

public class EspeciesActivity extends RegistrosActivity {

    private static final String TAG = "FireLog";
    private RecyclerView mMainList;
    private FirebaseFirestore mFirestore;
    private AvistAdapter avistAdapter;
    private List<ReporteEspecie> reportesEspecies;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_especies);

        reportesEspecies = new ArrayList<>();
        avistAdapter = new AvistAdapter(reportesEspecies);

        mMainList = (RecyclerView) findViewById(R.id.main_list);
        mMainList.setHasFixedSize(true);
        mMainList.setLayoutManager(new LinearLayoutManager(this));
        mMainList.setAdapter(avistAdapter);

        mFirestore = FirebaseFirestore.getInstance();

        mFirestore.collection("reportes").addSnapshotListener(new EventListener<QuerySnapshot>() {
            @Override
            public void onEvent(QuerySnapshot documentSnapshots,FirebaseFirestoreException e) {
                if(e !=null){
                    Log.d(TAG, "Error: "+e.getMessage());
                }
                for (DocumentChange doc : documentSnapshots.getDocumentChanges()){

                    if(doc.getType()== DocumentChange.Type.ADDED){

                        ReporteEspecie reporteEspecie = doc.getDocument().toObject(ReporteEspecie.class);
                        reportesEspecies.add(reporteEspecie);

                        avistAdapter.notifyDataSetChanged();


                    }
                }
            }
        });

    }
}

Добавил Активити Репортееспесье.хава

public class ReporteEspecie {

    String email,direccion,especie,nombre;
    Timestamp fechaYhora;

    public ReporteEspecie(){

    }

    public ReporteEspecie(String email, String direccion, String especie, String nombre, Timestamp fechaYhora) {
        this.email = email;
        this.direccion = direccion;
        this.especie = especie;
        this.nombre = nombre;
        this.fechaYhora = fechaYhora;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getEspecie() {
        return especie;
    }

    public void setEspecie(String especie) {
        this.especie = especie;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public Timestamp getFechaYhora() {

        return fechaYhora;
    }

    public void setFechaYhora(Timestamp fechaYhora) {

        this.fechaYhora = fechaYhora;
    }

}
1
задан 06.03.2019, 11:36
1 ответ

Хороший решение думало бы, что он здесь, как говорит logcat

java.lang.IllegalArgumentException: argument 1 should have type java.sql.Timestamp, got java.util.Date

И ошибка находится в линии

at com.example.usuario.app.myroodent.EspeciesActivity$1.onEvent(EspeciesActivity.java:57)

Следовательно то, за чем оно последует, что ты получаешь тип, ВОСХОДИТЕ и эти queriendolo inserertar в поле TIMESTAMP

Есть два решения, первая - что ты веришь в твой собственный dezerializador, но я не думаю, что это уместно, и вторая - что ты изменил признак твоего класса ReporteEspecie в тип, ВОСХОДИТЕ, оставаясь твой класс следующего способа

public class ReporteEspecie {

    String email,direccion,especie,nombre;
    Date fechaYhora;

    public ReporteEspecie(){

    }

    public ReporteEspecie(String email, String direccion, String especie, String nombre, Date fechaYhora) {
        this.email = email;
        this.direccion = direccion;
        this.especie = especie;
        this.nombre = nombre;
        this.fechaYhora = fechaYhora;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getEspecie() {
        return especie;
    }

    public void setEspecie(String especie) {
        this.especie = especie;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public Date getFechaYhora() {

        return fechaYhora;
    }

    public void setFechaYhora(Date fechaYhora) {

        this.fechaYhora = fechaYhora;
    }

}
1
ответ дан 19.11.2019, 22:31
  • 1
    Спасибо Друг я sirvió много твой recomendació n только смените Timestamp на Date и я funcionó совершенный одинокий, что даже я лишенная, что мой listview виделся правильно – Andres Mora 06.03.2019, 12:02
  • 2
    Не, если у тебя была идея как, добиваться, но нуждаюсь q в моем listview был виден таково xd.adobe.com/view/8a9f4f8e-50c6-4022-576a-9e73184fdcec-fcae Пока отображает таким образом drive.google.com/open?id=1hcLkMD6mlk854T38JkzsXs_iVGOdYlW_ – Andres Mora 06.03.2019, 12:06
  • 3
    Recorda, что, если ответ ты был полезным, голосовать за нее как позитив и помечать ее как правильный ответ. ´ Для случая listView, ты будешь должен создавать adapter и распределять ему компонент, который ты хочешь, что visualize, чтобы делать компонент, я рекомендую тебе ConstraintLayout – LcsGrz 06.03.2019, 12:17

Теги

Похожие вопросы