Android не может создать базу данных SQL на моем устройстве - PullRequest
1 голос
/ 11 октября 2011

У меня есть простой код, который должен создать базу данных.

package com.webfoo.android.databaseExample;

import android.app.Activity;
import android.os.Bundle;

public class DatabaseExampleActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        jokesHelper db = new jokesHelper(getBaseContext());
    }
}

package com.webfoo.android.databaseExample;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class jokesHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "test.db";
    private static final int DB_VERSION = 1;

    public jokesHelper(Context context) {
        super(context, DATABASE_NAME, null, DB_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table todo (_id integer primary key autoincrement, "
                 + "joke text not null, punch text not null);");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}

Кто-нибудь знает, почему не удается создать базу данных? Мой телефон подключен к моей машине, а SD не подключен, но он находится в режиме отладки (я вижу, что мое добавление запускается на моем телефоне).

Я тоже не модифицировал манифест, так что это может вызвать проблемы?

Спасибо

1 Ответ

3 голосов
/ 11 октября 2011

Вы еще не звонили getWritableDatabase() или getReadableDatabase().

например,

jokesHelper dbHelper = new jokesHelper(getBaseContext());
SQLiteDatabase db = dbHelper.getWritableDatabase();

Базы данных не хранятся на SD-карте или в другом месте для USB-подключенияхотя бы не по умолчанию).Они находятся во «внутреннем» хранилище.Путь в вашем комментарии выше почти правильный, но я не уверен, что означает «ДАННЫЕ».Путь: /data/data/<package name>/databases.Вы можете проверить это, используя adb shell ls /data/data/<package name>/databases.

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