Вставить тело ответа на модернизацию в комнате

Я пытаюсь вставить response.body(), который является User, в комнату, но получаю

A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 23714 (AsyncTask #2)

Он отображается в RecyclerView, но когда я пытаюсь кэшировать его, мое приложение вылетает.

Вот код

   private void refreshUser() {
        executor.execute(new Runnable() {
            @Override
            public void run() {
                try {
                    retrofit2.Response<User> response=webservice.getUser("1").execute();
                    User fromNetwork=response.body();

                    mUserDao.insertUser(fromNetwork);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
}

Я следую руководству это для своего приложения.

Это метод DAO

@Insert(onConflict = OnConflictStrategy.REPLACE)    
void insertUser(User user);

Сущность пользователя (тело ответа)

@Entity(tableName = "user_table")
public class User {

    @PrimaryKey
    @NonNull
    private String uid;
    @NonNull
    @ColumnInfo(name = "password")
    private String password;
    @SerializedName("first_name")
    @ColumnInfo(name = "first_name")
    private String firstName;
    @SerializedName("last_name")
    @ColumnInfo(name = "last_name")
    private String lastName;
    @ColumnInfo(name = "role")
    private int role;
    @ColumnInfo(name = "topic")
    private String topic;
    @ColumnInfo(name = "lab")
    private String lab;

    //constructor, setters and getters
}

И модель просмотра

public class UserViewModel extends AndroidViewModel {

    private AppRepository mRepository;

    public UserViewModel(Application application) {
        super(application);
        mRepository=new AppRepository(application);
    }

    public LiveData<User> getUser(String username) {
        return mRepository.getUser(username);
    }
}

Можете ли вы опубликовать метод Дао, тело ответа и модель комнаты?

Ezzy 01.11.2018 18:22

Я отредактировал свой вопрос @Ezzy

car_anz 01.11.2018 18:46
0
2
1 082
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я понял. User, поставляемый response.body(), имел неправильное значение в одном поле, поэтому Room вызывал ошибку, потому что не мог вставить неправильное значение в базу данных.

Другие вопросы по теме