Я работаю в проекте, который обновляет базу данных через AsyncTask
, когда я запускаю ее в режиме отладки, все идет хорошо, но когда я запускаю ее в режиме бега, используя AVD, он вылетает и выдает следующее сообщение:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.database.sqlite.SQLiteDatabase.execSQL(java.lang.String)' on a null object reference
Как я уже упоминал ранее, ЭТО ПРОИСХОДИТ ТОЛЬКО, ЧТО CRA SH В РЕЖИМЕ РАБОТЫ С AVD !!!
Может кто-нибудь объяснить мне, что происходит?
После предложений Карана Диллона:
Я уже попробовал оба способа, используя Executors (с FixedThreadPool) и HandlerThread, потому что мне нужно вставить несколько новых строк в базу данных, и я даже изменил метод для вставки этих данных, используя ContentValues и SQL Запрос через строку. В процессе работы через AVD все равно получалось следующее сообщение об ошибке: Когда я пытаюсь вставить с SQL Query:
E / AndroidRuntime: FATAL EXCEPTION: Рабочий процесс: com.jagetram.senarand , PID: 6006 android .database.sqlite.SQLiteConstraintException: сбой при ограничении NOT NULL: TABLE_NAME.FIRST_FIELD (код 1299) в android .database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount (собственный метод)
при 1013 * *, когда используется собственный метод Я пытаюсь вставить с ContentValues:
E / SQLiteLog: (1) около «ноль»: синтаксическая ошибка E / SQLiteDatabase: Ошибка при вставке android .database.sqlite.SQLiteException: около «ноль»: синтаксическая ошибка (код 1): во время компиляции: INSERT INTO TABLE_NAME (null) VALUES (NULL) в android .database.sqlite.SQLiteConnection.nativePrepareStatement (собственный метод) в android .database.sqlite.SQLiteConnection.acquirePreparedState. java: 887)