I changed something in my db so I incremented my version. However, this made an error. To fix it, I uninstalled the app hoping that it would work. But, what I got is no such table.
Here's my implementation.
SQLiteOpenHelper class:
public static final String SCHEMA = "LIFE.db";
public static final int VERSION = 5;
public DatabaseHelperS(Context context) { super(context, SCHEMA, null, VERSION); }
@Override
public void onCreate(SQLiteDatabase db) {
//CREATE TABLE series ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, description text not null, episodes integer not null, image integer not null, category text not null);
String sql = "CREATE TABLE " + Series.TABLE + " ( "
+ Series.COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ Series.COLUMN_TITLE + " TEXT NOT NULL, "
+ Series.COLUMN_DESCRIPTION + " TEXT NOT NULL, "
+ Series.COLUMN_EPISODES + " INTEGER NOT NULL, "
+ Series.COLUMN_IMAGE + " INTEGER NOT NULL, "
+ Series.COLUMN_CATEGORY + " TEXT NOT NULL);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
String sql = "DROP TABLE IF EXISTS " + Series.TABLE;
db.execSQL(sql);
onCreate(db);
}
public Cursor getAllSeries(){
SQLiteDatabase db = getReadableDatabase();
return db.query(Series.TABLE,
null, // *
null, // where clause
null, // where args
null, // group by
null, // having
null // order by
);
}
Series class:
public static final String TABLE = "series";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_TITLE = "title";
public static final String COLUMN_DESCRIPTION = "description";
public static final String COLUMN_IMAGE = "imagepath";
//public static final String COLUMN_GENRE = "genre";
public static final String COLUMN_EPISODES = "episodes";
public static final String COLUMN_CATEGORY = "category";
Android monitor logcat:
03-19 15:31:18.608 4810-4810/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: ph.edu.mobapde.machineproject4, PID: 4810
android.database.sqlite.SQLiteException: no such table: series (code 1): , while compiling: SELECT * FROM series
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:893)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:504)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:726)
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:1426)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1273)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1144)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1312)
at ph.edu.mobapde.machineproject4.db.DatabaseHelperS.getAllSeries(DatabaseHelperS.java:72)
at ph.edu.mobapde.machineproject4.Tab.SeriesTab.init(SeriesTab.java:47)
at ph.edu.mobapde.machineproject4.Tab.SeriesTab.onCreateView(SeriesTab.java:38)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2189)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1299)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:757)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2355)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2146)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2098)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1979)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:626)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:166)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1268)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1116)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1642)
at android.view.View.measure(View.java:18911)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5995)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18911)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5995)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
at android.view.View.measure(View.java:18911)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5995)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18911)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5995)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:18911)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5995)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18911)
at android.view.ViewGroup.measu
I tried a lot of things such as changing the database name, changing table name, upgrading version, and more. But none of it worked.
Line that uses the code I previously sent:
rv_series = (RecyclerView) fragView.findViewById(R.id.rv_series);
dbHelper = new DatabaseHelperS(getActivity());
Cursor c = dbHelper.getAllSeries();