check your table creation statements within onCreate()

On May 5, 11:29 pm, AJ <[email protected]> wrote:
> Hello - our dev team is looking into utilizing an SQLite DB as a means
> to store data within our application.  We've been following the
> official dev guide's NotePad tutorial (http://d.android.com/guide/
> tutorials/notepad/notepad-ex1.html) to accomplish this, but we're
> stuck on Step 2: the preliminary creation of the database itself.  We
> aren't even concerned with inserting into and retrieving from the DB
> yet.
>
> Basically, we re-purposed the NoteDbAdapter.java file (renamed to
> simply DbAdapter.java) to work with our main activity, called
> LifeVault.  When an instance of the DbAdapter class created within
> LifeVault.java calls the "open()" function within DbAdapter.java,
> however, the Android emulator just crashes and displays a message
> along the lines of "the process has stopped working and needs to
> close."
>
> The code doesn't have any compilation errors, and it's based on the
> code from the official dev guide, so we're pretty perplexed as to why
> this happens.
>
> /******************
> DbAdapter.java
> *******************/
> package com.android.lifevault;
>
> import android.content.Context;
> import android.database.SQLException;
> import android.database.sqlite.SQLiteDatabase;
> import android.database.sqlite.SQLiteOpenHelper;
> import android.util.Log;
>
> public class DbAdapter {
>
>    private static final String TAG = "DbAdapter";
>    private DatabaseHelper mDbHelper;
>    private SQLiteDatabase mDb;
>
>    private static final String DATABASE_NAME = "FVDB";
>    private static final String DATABASE_TABLE_USER = "User";
>    private static final String DATABASE_TABLE_ACH = "Ach";
>    private static final String DATABASE_TABLE_USER_ACH = "User_Ach";
>    private static final int DATABASE_VERSION = 1;
>
>    private final Context mCtx;
>
>    private static class DatabaseHelper extends SQLiteOpenHelper {
>
>        DatabaseHelper(Context context) {
>            super(context, DATABASE_NAME, null, DATABASE_VERSION);
>        }
>
>       �...@override
>        public void onCreate(SQLiteDatabase db) {
>            // Our "db.execSQL" statements for creating the three tables
> live here
>        }
>
>       �...@override
>        public void onUpgrade(SQLiteDatabase db, int oldVersion, int
> newVersion) {
>            Log.w(TAG, "Upgrading database from version " + oldVersion
> + " to "
>                    + newVersion + ", which will destroy all old
> data");
>            db.execSQL("DROP TABLE IF EXISTS User_Ach");
>            db.execSQL("DROP TABLE IF EXISTS Ach");
>            db.execSQL("DROP TABLE IF EXISTS User");
>            onCreate(db);
>        }
>    }
>
>    /**
>     * Constructor - takes the context to allow the database to be
>     * opened/created
>     */
>    public DbAdapter(Context ctx) {
>        this.mCtx = ctx;
>    }
>
>    /**
>     ** Open the database - Here's where things get screwy.
>     **/
>    public DbAdapter open() throws SQLException {
>        mDbHelper = new DatabaseHelper(mCtx);
>        mDb = mDbHelper.getWritableDatabase();
>        return this;
>    }
>
>    public void close() {
>        mDbHelper.close();
>    }}
>
> /******************
> END DbAdapter.java
> ******************/
>
> /******************
> LifeVault.java
> ******************/
> package com.android.lifevault;
>
> import com.android.lifevault.DbAdapter;
> import android.app.Activity;
> import android.os.Bundle;
> import android.view.View;
>
> public class LifeVault extends Activity {
>
>         private DbAdapter mDbHelper;
>
>         @Override
>     public void onCreate(Bundle icicle) {
>         super.onCreate(icicle);
>         mDbHelper = new DbAdapter(this);
>         mDbHelper.open();   // <--------- Program crashes here
>         setContentView(R.layout.main);
>
>         /**The rest of the code**/
>
>      }}
>
> /********************
> END LifeVault.java
> ********************/
>
> - Am I using the Context class incorrectly?
> - Am I missing a library that the app needs to recognize the
> getWritableDatabase() funciton?
>
> Those are my two best guesses.  I'm so close I can taste it!
> Hopefully someone can help me see this answer that's probably right in
> front of my face.  Thank you; the help is greatly appreciated.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to