Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public boolean databaseLoaded(Context context) {
- File dbFile = context.getDatabasePath(MyConstants.DEFAULT_DATABASE);
- return dbFile.exists();
- }
- class DatabaseHelper extends SQLiteAssetHelper {
- public DatabaseHelper(Context context, String databaseName, int databaseVersion) {
- super(context, databaseName, null, databaseVersion);
- if (databaseVersion>1 && databaseName.equals(MyConstants.DEFAULT_DATABASE)) {
- setForcedUpgradeVersion(databaseVersion);
- }
- }
- }
- @Override
- public boolean onCreate() {
- DATABASE = constants.getDBName();
- db=new DatabaseHelper(getContext(), DATABASE, MyConstants.DATABASE_VERSION);
- return((db == null) ? false : true);
- }
- @Override
- public Cursor query(Uri url, String[] projection, String selection, String[] selectionArgs, String sort) {
- /**if updating the app, pause to wait for the database to transfer**/
- SharedPreferences sharedPreferences = getContext().getSharedPreferences(MyConstants.PREFS, 0);
- int lastDBVersion = sharedPreferences.getInt("db_version", MyConstants.STARTING_DB_VERSION);
- if (lastDBVersion<MyConstants.DATABASE_VERSION) {
- try {
- Thread.sleep(5000);
- } catch(InterruptedException ex) {
- Thread.currentThread().interrupt();
- }
- SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putInt("db_version", MyConstants.DATABASE_VERSION);
- editor.commit();
- }
- SQLiteQueryBuilder qb=new SQLiteQueryBuilder();
- qb.setTables(TABLE);
- String orderBy;
- if (TextUtils.isEmpty(sort)) {
- orderBy=_ID;
- }
- else {
- orderBy=sort;
- }
- Cursor c= null;
- if (db.getReadableDatabase()!=null) {
- c= qb.query(db.getReadableDatabase(), projection, selection,
- selectionArgs, null, null, orderBy);
- c.setNotificationUri(getContext().getContentResolver(), url);
- }
- return c;
- }
- java.lang.RuntimeException: An error occured while executing doInBackground()
- at android.os.AsyncTask$3.done(AsyncTask.java:300)
- at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
- at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
- at java.util.concurrent.FutureTask.run(FutureTask.java:242)
- at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
- at java.lang.Thread.run(Thread.java:841)
- Caused by: java.lang.NullPointerException
- at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.getWritableDatabase(SQLiteAssetHelper.java:180) //this is where db.getVersion() is null
- at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.getReadableDatabase(SQLiteAssetHelper.java:257)
- at com.mypackage.Provider.query(Provider.java:84) //this is if (db.getReadableDatabase()!=null) {...
- at android.content.ContentProvider.query(ContentProvider.java:857)
- at android.content.ContentProvider$Transport.query(ContentProvider.java:200)
- at android.content.ContentResolver.query(ContentResolver.java:477)
- at android.content.ContentResolver.query(ContentResolver.java:420)
- at com.mypackage.MyClass$MyMethod.doInBackground(MyClass.java:594) //This is Cursor c = getActivity().getContentResolver().query...
- at com.mypackage.MyClass$MyMethod.doInBackground(MyClass.java:1)
- at android.os.AsyncTask$2.call(AsyncTask.java:288)
- at java.util.concurrent.FutureTask.run(FutureTask.java:237)
- ... 4 more
- java.lang.NullPointerException
- at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.getWritableDatabase(SQLiteAssetHelper.java:180)
- at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.getReadableDatabase(SQLiteAssetHelper.java:257)
- at com.mypackage.Provider.query(Provider.java:84)
- at android.content.ContentProvider.query(ContentProvider.java:857)
- at android.content.ContentProvider$Transport.query(ContentProvider.java:200)
- at android.content.ContentResolver.query(ContentResolver.java:477)
- at android.content.ContentResolver.query(ContentResolver.java:420)
- at com.mypackage.MyClass$MyMethod.doInBackground(MyClass.java:594)
- at com.mypackage.MyClass$MyMethod.doInBackground(MyClass.java:1)
- at android.os.AsyncTask$2.call(AsyncTask.java:288)
- at java.util.concurrent.FutureTask.run(FutureTask.java:237)
- at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
- at java.lang.Thread.run(Thread.java:841)
Add Comment
Please, Sign In to add comment