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
onCreate()?DATA/data/APP_NAME/databases/DATABASENAMEright? Well it's not there.onCreate()normally only gets called once per application install (upgrades don't count). So if it was called at any point earlier in your development when perhaps it was empty, then it won't get called again unless you wipe the application's data.onUpgrade()would get called if you bumped DB_VERSION, however.