Когда я запускаю приложение, происходит сбой, говоря, что такой таблицы нет: QuestionDB.db, но когда я проверяю данные, база данных создается, и все равно говорится, что такой таблицы нет, любая помощь будет принята!
Я попытался изменить версию на тот случай, если таблица еще существует. Мне также пришлось изменить QuestionDBHandler с `` `
public QuestionDBHandler(@androidx.annotation.Nullable Context context, @androidx.annotation.Nullable String name, @androidx.annotation.Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}```
to
```
public QuestionDBHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
```
потому что в моей MainActivity QuestinDBHandler не принимает контекст.
Мой DBHandler
public QuestionDBHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = " CREATE TABLE " + TABLE_NAME + "(" + COLUMN_ID +
COLUMN_NAME + COLUMN_ANSWER + ")";
db.execSQL(CREATE_TABLE);
}
Это моя основная деятельность
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.quiz_recycler);
QuestionDBHandler mQuestion = new QuestionDBHandler(this);
questionsList = mQuestion.getAllQuestions();
getAllQuestions ()
public List<Questions> getAllQuestions(){
List<Questions> questionsList = new ArrayList<>();
db = getReadableDatabase();
Cursor c = db.rawQuery("Select * FROM " + DATABASE_NAME, null);
Это ошибка
2019-03-29 01:19:19.196 24878-24878/edu.gsu.csci5338.geoquizelite E/SQLiteLog: (1) no such table: QuestionDB.db
2019-03-29 01:19:19.196 24878-24878/edu.gsu.csci5338.geoquizelite D/AndroidRuntime: Shutting down VM
2019-03-29 01:19:19.197 24878-24878/edu.gsu.csci5338.geoquizelite E/AndroidRuntime: FATAL EXCEPTION: main
Process: edu.gsu.csci5338.geoquizelite, PID: 24878
java.lang.RuntimeException: Unable to start activity ComponentInfo{edu.gsu.csci5338.geoquizelite/edu.gsu.csci5338.geoquizelite.MainActivity}: android.database.sqlite.SQLiteException: no such table: QuestionDB.db (code 1): , while compiling: Select * FROM QuestionDB.db
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: android.database.sqlite.SQLiteException: no such table: QuestionDB.db (code 1): , while compiling: Select * FROM QuestionDB.db
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1257)
at edu.gsu.csci5338.geoquizelite.QuestionDBHandler.getAllQuestions(QuestionDBHandler.java:82)
at edu.gsu.csci5338.geoquizelite.MainActivity.onCreate(MainActivity.java:28)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Спасибо всем за помощь! Оказывается, я использовал DATABASE_NAME вместо своего TABLE_NAME.