समस्या इसलिए है क्योंकि कुछ डिवाइस आपके ऐप को अपग्रेड कर रहे हैं, इसलिए checkDataBase()
लौट रहा है true
, इसलिए आप कॉल नहीं कर रहे हैं copyDataBase()
. तो आप पिछले डेटाबेस का उपयोग कर रहे हैं जिसमें generalSettings
. नहीं है तालिका। इसे हल करने के लिए प्रयास करें:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(newVersion>oldVersion)
copyDatabase();
}
और अपने कंस्ट्रक्टर को भी अपडेट करें:
public InstallDB(Context context, String name) {
super(context, name, null, DB_VERSION);
// DB_VERSION is an int,update it every new build
this.ctx = context;
this.DBNAME = name;
this.DBPATH = this.ctx.getDatabasePath(DBNAME).getAbsolutePath();
Log.e("Path 1", DBPATH);
}