Почему некоторые пользователи получают SQLiteException в SQLiteDatabase.dbopen ()? - PullRequest
2 голосов
/ 02 июля 2011

Вот исключение:

java.lang.RuntimeException: Unable to start activity ComponentInfo{spb.bridges/spb.bridges.Bridges}: android.database.sqlite.SQLiteException: unable to open database file
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.database.sqlite.SQLiteException: unable to open database file
at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1921)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:883)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:960)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:953)
at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:602)
at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
at spb.bridges.DbAdapter.open(DbAdapter.java:172)
at spb.bridges.Bridges.onCreate(Bridges.java:90)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

и вот код DbAdapter.open:

public DbAdapter open() throws SQLException {
    mDbHelper = new DatabaseHelper(mCtx);
    mDb = mDbHelper.getWritableDatabase();
    return this;
}

Bridges.onCreate

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.bridges_list);
    mDbHelper = new DbAdapter(this);
    mDbHelper.open();

1 Ответ

1 голос
/ 02 июля 2011

Похоже, ваш контекст не полностью инициализирован при открытии базы данных.

В вашем Bridges.onCreate методе вы вызываете super.onCreate? setContentView перед любыми другими операциями?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...