开发者

Android fails to create a SQL database on my device

I have some simple code which should create a database.

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

    }

}

does any have any idea why this fails to create a database? My phone开发者_运维技巧 is connected to my machine and the SD isn't mounted, but it's on debug mode (i can see my add being ran on my phone).

I haven't modified the manifest either, so could that be causing any issues?

Thanks


You haven't called getWritableDatabase() or getReadableDatabase() yet.

e.g.

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

The databases are not stored on the SD card or otherwise USB-mountable storage (at least not by default). They are in "internal" storage. The path in your comment above is almost right, but I'm not sure what "DATA" means. The path is: /data/data/<package name>/databases. You can check that by using adb shell ls /data/data/<package name>/databases.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜