Intereting Posts
Throwing OutOfMemoryError "pthread_create (стек 1040 КБ) не удалось: повторите попытку" при выполнении асинхронных сообщений с использованием Volley Как добраться до командной строки в Eclipse 404 Ошибка при запуске образца TicTacToe (Android) против образца проекта Google App Engine (Java) Ошибка: выполнение выполнено для задачи ': app: dexDebug'. Закончил с ненулевым значением выхода 2 с Facebook Fresco Android: ваш контент должен иметь ListView, чей атрибут id – android.R.id.list Как сохранить статический член в общих предпочтениях, когда он собирается быть Мусором, собранным в Android Результат Wearable.NodeApi.getConnectedNodes никогда не вызывался BaseGameUtils GoogleApiClient.ApiOptions не может быть разрешен для типа Считывать и записывать данные с помощью GSON Основное различие между методом add () и replace () фрагмента Как отправить запрос FQL с новым Android SDK Как включить мультисайдинг с новой библиотекой поддержки Android Multidex Лучший способ: сохранить и восстановить позицию TextView в ScrollView Сделайте ImageView с круглым углом Используя пикассо ОШИБКА: Не удалось прочитать ключ из хранилища: … Не удается восстановить ключ в Android Studio при создании подписанного APK

Java.lang.IllegalStateException: объект больше не управляется Realm. Был ли он удален?

Я изучаю Realm и Recyclerview. Я сделал простое приложение, где вы можете просто добавлять элементы и удалять их. Все работает нормально, пока я не начну удалять элемент один за другим. В последнем пункте, когда я нажимаю кнопку «Удалить», я получаю исключение

java.lang.IllegalStateException: Object is no longer managed by Realm. Has it been deleted? 

Это мой код

  @Override public void onDeleteClick(int position) { mRealm.beginTransaction(); mResult.get(position).deleteFromRealm(); mRealm.commitTransaction(); adapter.notifyItemRemoved(position); } 

Вот полный стек

  java.lang.IllegalStateException: Object is no longer managed by Realm. Has it been deleted? at io.realm.internal.InvalidRow.getStubException(InvalidRow.java:192) at io.realm.internal.InvalidRow.getString(InvalidRow.java:88) at io.realm.PersonsRealmProxy.realmGet$firstName(PersonsRealmProxy.java:67) at techiespk.realmpractice.Persons.getFirstName(Persons.java:22) at techiespk.realmpractice.MyListAdapter.onBindViewHolder(MyListAdapter.java:44) at techiespk.realmpractice.MyListAdapter.onBindViewHolder(MyListAdapter.java:15) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2906) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3283) 

Solutions Collecting From Web of "Java.lang.IllegalStateException: объект больше не управляется Realm. Был ли он удален?"

Хорошо благодаря Кристиану Мельхиору за помощью. Я исправил свой код, выполнив это

До

  @Override public void onBindViewHolder(MyListViewHolder holder, int position) { Persons p = persons.get(position); holder.firstName.setText(p.getFirstName()); holder.lastName.setText(p.getLastName()); } 

После

  @Override public void onBindViewHolder(MyListViewHolder holder, int position) { if (persons.get(position).isValid()) { Persons p = persons.get(position); holder.firstName.setText(p.getFirstName()); holder.lastName.setText(p.getLastName()); } }