Android无法在我的设备上创建SQL数据库

时间:2011-10-11 11:34:36

标签: java android sqlite

我有一些简单的代码可以创建数据库。

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 个答案:

答案 0 :(得分:3)

您尚未拨打getWritableDatabase()getReadableDatabase()

e.g。

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

数据库不存储在SD卡或USB可安装存储设备上(至少不是默认设置)。它们处于“内部”存储中。上面评论中的路径几乎是正确的,但我不确定“数据”是什么意思。路径为:/data/data/<package name>/databases。您可以使用adb shell ls /data/data/<package name>/databases

进行检查