android Room 질문좀드리겠습니다
조회수 502회
현재 번역을 할수있는어플을 토이프로젝트로 구현중에있습니다
번역할 한국말을 입력하고 영어로 번역을하게되면
데이터베이스에 저장을하고
번역을 했었던 데이터들을 리사이클러뷰로 가지고오는 어플을 만들고있는데요
모든 작업은 Fragment 위에서 이루어지고있습니다
통신은 Retrofit2 라이브러리를 사용하고있습니다
데이터베이스는 Romm 라이브러리를 사용하고있습니다
문제는 Retrofit2 에서 응답받은 데이터가 Insert 가 안되고있습니다
오류는 현재 이런식으로 뜨고있습니다..
java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:353) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383) at java.util.concurrent.FutureTask.setException(FutureTask.java:252) at java.util.concurrent.FutureTask.run(FutureTask.java:271) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764) Caused by: android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: language_table.language (code 1299) at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method) at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:789) at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:926) at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86) at android.arch.persistence.db.framework.FrameworkSQLiteStatement.executeInsert(FrameworkSQLiteStatement.java:79) at android.arch.persistence.room.EntityInsertionAdapter.insertAndReturnId(EntityInsertionAdapter.java:114) at com.example.toyproject.Model.LanguageDao_Impl.insert(LanguageDao_Impl.java:96) at com.example.toyproject.Model.LanguageRepository$1.doInBackground(LanguageRepository.java:35) at com.example.toyproject.Model.LanguageRepository$1.doInBackground(LanguageRepository.java:23) at android.os.AsyncTask$2.call(AsyncTask.java:333) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764)
Room에서 insert 할때 AsyncTask 쓰는데 이때 doInbackground 에서 무언가 잘못된거같은데 그 이유를 잘 모르겠습니다..
댓글 입력