标签: getwritabledatabase

SQLiteException:不是错误

在我的应用程序中,我在许多情况下使用数据库,但有一种情况我得到一个例外,不是每次都可以重现它(还).

这仅在OS版本2.3.7和2.1-update-1上发生.

代码:

public void removeOldOccurrences() {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        Long oldTime = System.currentTimeMillis() - VALID_OCCURRENCE_TIME;
        String query = "";
        try {
            query = "DELETE FROM " + LOCATIONS_TABLE + " WHERE not ("
                    + REMEMBERED_FIELD + "=1) " + "and (" + LAST_FIELD + "<"
                    + oldTime + ");";
            db.execSQL(query);
        } catch (Exception e) {
            Log.e(TAG, query);
            e.printStackTrace();
        } finally {
            if (db != null) {
                db.close();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

异常跟踪是:

android.database.sqlite.SQLiteException: not an error
at android.database.sqlite.SQLiteDatabase.dbopen(Native Method) …
Run Code Online (Sandbox Code Playgroud)

sqlite android exception getwritabledatabase

5
推荐指数
2
解决办法
1万
查看次数

在Android中同时访问SQLite数据库 - 数据库已经关闭

我在这个子喷气机上阅读了很多主题,但没有人能回答我的问题.

我从并发线程访问我的数据库,我的SQLiteOpenHelper实现了单例的设计模式,所以我的应用程序只有一个实例.

我使用以下代码访问我的数据库:

 SQLiteDatabase db = DatabaseHelper.getInstance().getWritableDatabase();
 ...
 Do some update in the DB
 ...
 db.close();
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我仍然得到"db already closed"错误,getWritableDatabase()方法是否应该锁定数据库,直到调用close()为止?来自其他线程的其他getWritableDatabase()调用应该等到db关闭?这是对的还是我错过了什么?

sqlite android sqliteopenhelper getwritabledatabase

3
推荐指数
1
解决办法
6404
查看次数

Android NullPointerException + GetDatabaseLocked

我的程序有问题.我使用数据库来保存我的应用程序的设置.当我在应用程序中保存密码时一切正常,但是当我保存"学校类"的名称时原则上使用相同的方法,但另一个表崩溃并且我收到此错误:

02-19 15:32:04.070: E/AndroidRuntime(14349): FATAL EXCEPTION: main
02-19 15:32:04.070: E/AndroidRuntime(14349): java.lang.NullPointerException
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at de.vertretungsplan2.helper.DBHandler.insertKurs(DBHandler.java:95)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at de.vertretungsplan2.tabswipe.adapter.KurseFragment$1.onItemClick(KurseFragment.java:38)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.widget.AdapterView.performItemClick(AdapterView.java:297)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.widget.AbsListView$1.run(AbsListView.java:3463)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.os.Handler.handleCallback(Handler.java:730)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.os.Handler.dispatchMessage(Handler.java:92)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.os.Looper.loop(Looper.java:137)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at android.app.ActivityThread.main(ActivityThread.java:5289)
02-19 15:32:04.070: E/AndroidRuntime(14349):    at java.lang.reflect.Method.invokeNative(Native Method)
02-19 15:32:04.070: E/AndroidRuntime(14349): …
Run Code Online (Sandbox Code Playgroud)

database sqlite android nullpointerexception getwritabledatabase

2
推荐指数
1
解决办法
6329
查看次数

Android getWritableDatabase()抛出NullPointerException

我对getWritableDatabase()的调用遇到了问题.它返回一个NullPointerException.最奇怪的是,这个错误只是在我在Android清单中注释掉几行代码之后才开始发生的.现在项目又回到了原来的位置(我没有对这些部分进行评论,但它仍然会抛出NullPointerException).所以我检查了我的上下文并尝试了this.getBaseContext()和this.getApplicationContext().

使用getApplicationContext()将其发送到logcat:

08-12 09:24:20.042: E/AndroidRuntime(5572): FATAL EXCEPTION: main
08-12 09:24:20.042: E/AndroidRuntime(5572): java.lang.RuntimeException: Unable to instantiate service com.productivity.uptimeapp.NetService: java.lang.NullPointerException
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2395)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.app.ActivityThread.access$1600(ActivityThread.java:139)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1313)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.os.Looper.loop(Looper.java:137)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at android.app.ActivityThread.main(ActivityThread.java:5021)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at java.lang.reflect.Method.invokeNative(Native Method)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at java.lang.reflect.Method.invoke(Method.java:511)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
08-12 09:24:20.042: E/AndroidRuntime(5572):     at dalvik.system.NativeStart.main(Native Method)
08-12 09:24:20.042: E/AndroidRuntime(5572): Caused by: …
Run Code Online (Sandbox Code Playgroud)

service android nullpointerexception android-context getwritabledatabase

1
推荐指数
1
解决办法
7663
查看次数