我有一些简单的代码可以创建数据库。
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,但是它处于调试模式(我可以在手机上看到我的添加内容)。
我也没有修改过清单,所以这可能导致任何问题吗?
由于
答案 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
。