Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6649565
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T00:47:22+00:00 2026-05-26T00:47:22+00:00

I want to create a database for my android application. I have written the

  • 0

I want to create a database for my android application. I have written the code for a database in my project; whenever I run it shows “force close” on the emulator. I have tried different ways ,but nothing works. Where did I go wrong?

// EventContentProvider.java                  
package com.event.test;

import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;

public class EventContentProvider extends ContentProvider {

private static final String DATABASE_NAME = "event.db";

private static final UriMatcher sUriMatcher;
private static final int EVENTS = 1;
private static final int EVENT_ID = 2;

private static class DatabaseHelper extends SQLiteOpenHelper {

public DatabaseHelper(Context context) {

        super(context, DATABASE_NAME, null, 1);
    }

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE event1 (_ID INTEGER PRIMARY KEY,                   first_name       TEXT, last_name TEXT);");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
 }

 private DatabaseHelper mOpenHelper;

    @Override
 public boolean onCreate() {
 mOpenHelper = new DatabaseHelper(getContext());
 return true;
}

@Override
public int delete(Uri uri, String where, String[] whereArgs) {
    SQLiteDatabase db = null;
    int count = 0;
    try {
        db = mOpenHelper.getWritableDatabase();
        switch(sUriMatcher.match(uri)){
        case EVENTS:
        count = db.delete(Event.EVENT_TABLE_NAME, where, whereArgs);
            break;
        default:
            throw new IllegalArgumentException("No content matched");
        }
        getContext().getContentResolver().notifyChange(uri, null);
    } catch(Exception e) {
    } finally {
        if(db != null)
            db.close();
    }
    return count;
}

@Override
public String getType(Uri uri) {
    switch(sUriMatcher.match(uri)){
    case EVENTS:
        return Event.CONTENT_TYPE;
    default:
        throw new IllegalArgumentException("No content matched");
    }
}

@Override
public Uri insert(Uri uri, ContentValues initialValues) {

    SQLiteDatabase db = mOpenHelper.getWritableDatabase();
    ContentValues values;
    if (initialValues != null) {
        values = new ContentValues(initialValues);
    } else {
        values = new ContentValues();
    }
    long rowId = -1;
    Uri contentUri = null;
    switch(sUriMatcher.match(uri)){
    case EVENTS:
    rowId = db.insertOrThrow(Event.EVENT_TABLE_NAME, Event._ID, values);
        contentUri = ContentUris.withAppendedId(Event.CONTENT_URI, rowId);
        break;
    default:
        throw new IllegalArgumentException("Unknown URI " + uri);
    }
    db.close();

    if(rowId > 0){
        return contentUri;
    }

    return null;
}

@Override
 public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
    SQLiteDatabase db = mOpenHelper.getWritableDatabase();

    long rowId = -1;
    try {
        switch (sUriMatcher.match(uri)) {
        case EVENTS:
        rowId = db.update(Event.EVENT_TABLE_NAME, values, selection,
                    selectionArgs);
            break;
        default:
            throw new IllegalArgumentException("Unknown URI " + uri);

        }
        rowId = db.update(Event.EVENT_TABLE_NAME, values, selection,
                selectionArgs);
    } catch (Exception e) {
    } finally {
        if(db != null)
            db.close();
    }

    return (int) rowId;
}



@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

    switch(sUriMatcher.match(uri)){
    case EVENTS:
        qb.setTables(Event.EVENT_TABLE_NAME);
        qb.setProjectionMap(Event.sEventProjectionMap);
        break;
    default:
    throw new IllegalArgumentException("No content matched in query ");
    }

    SQLiteDatabase db = null;
    Cursor c = null;
    try {
        db = mOpenHelper.getReadableDatabase();
c = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder);
        c.setNotificationUri(getContext().getContentResolver(), uri);
    } catch (Exception e) {
    }
    return c;
}


static {
    sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
    sUriMatcher.addURI(Event.AUTHORITY, "events", EVENTS);
    sUriMatcher.addURI(Event.AUTHORITY, "events/#", EVENT_ID);
}


}
//Event.java
package com.event.test;

import java.util.HashMap;
import android.net.Uri;
import android.provider.BaseColumns;

public class Event implements BaseColumns{

public static final String AUTHORITY = "com.event.data.contentprovider";
public static final Uri CONTENT_URI =    Uri.parse("content://com.event.data.contentprovider/events");
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.event.event";
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.event/vnd.event.event";


public static final String EVENT_TABLE_NAME = "event1";
public static final String FIRSTNAME = "first_name";
public static final String LASTNAME = "last_name";
public static String _ID;


public static HashMap<String,String> sEventProjectionMap;

static {
    Event.sEventProjectionMap = new HashMap<String,String>();
    Event.sEventProjectionMap.put(Event._ID, Event._ID);
    Event.sEventProjectionMap.put(Event.FIRSTNAME, Event.FIRSTNAME);
    Event.sEventProjectionMap.put(Event.LASTNAME, Event.LASTNAME);

}
}
//manifestfile.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.event.test"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".EventManagementActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
<provider android:name="com.event.test.EventContentProvider"
              android:authorities="com.event.data.contentprovider" />
</application>
</manifest>
//EventManagementActivity.java
package com.event.test;

 import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class EventManagementActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button btn = (Button) findViewById(R.id.btn01);
    btn.setText("Press Me");
    btn.setOnClickListener(this);


}

@Override
public void onClick(View arg0) 
{
    switch(arg0.getId()){
    case R.id.btn01:
    ContentValues cv = new ContentValues();
    cv.put(Event.FIRSTNAME, "DATTA");
    cv.put(Event.LASTNAME, "Prabhu");
    getContentResolver().insert(Event.CONTENT_URI, cv);


    String[] str = {Event.FIRSTNAME, Event.LASTNAME};
    String where = Event.FIRSTNAME + " = ? AND " + 
                    Event.LASTNAME + " = ?";

    String [] whereArgs = {"Datta", "Prabhu"};
    Cursor c = getContentResolver().query(Event.CONTENT_URI, 
        str, 
        where, 
            whereArgs, 
            null);
    if (c.moveToFirst() ) {
    int id = c.getInt(0);
    String firstName = c.getString(0);
    String lastName = c.getString(1);
 EditText edit = (EditText) findViewById(R.id.edit01);
 edit.setText( id + firstName + " " + lastName);
 TextView tv = (TextView) findViewById(R.id.text01);
 tv.setText(id + firstName + " " + lastName);
    }

    c.close();
    break;

}
}
 }
//main.xml
<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
 >
 <TextView  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text=""
android:id="@+id/text01"
/>
<EditText
android:id="@+id/edit01"
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
/>
<Button 
android:id="@+id/btn01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
 </LinearLayout>

//R.java    
 package com.event.test;

 public final class R {
public static final class attr {
}
public static final class drawable {
    public static final int icon=0x7f020000;
}
public static final class id {
    public static final int btn01=0x7f050002;
    public static final int edit01=0x7f050001;
    public static final int text01=0x7f050000;
}
public static final class layout {
    public static final int main=0x7f030000;
}
public static final class string {
    public static final int app_name=0x7f040001;
    public static final int hello=0x7f040000;
  }
 }
//logcat
 10-04 01:12:06.904: DEBUG/MediaScanner(285):    total time: 981ms
 10-04 01:12:06.984: DEBUG/MediaScannerService(285): done scanning volume internal
 10-04 01:12:07.344: DEBUG/dalvikvm(216): GC_CONCURRENT freed 243K, 51% free          2798K/5703K, external 410K/517K, paused 4ms+3ms
 10-04 01:12:07.854: DEBUG/dalvikvm(178): GC_EXPLICIT freed 331K, 50% free 2952K/5895K, external 1313K/1400K, paused 64ms
 10-04 01:12:12.318: WARN/ActivityManager(73): Activity destroy timeout for HistoryRecord{4072bb18 com.event.test/.EventManagementActivity}
 10-04 01:12:15.079: INFO/InputReader(73): Device reconfigured: id=0x0, name=qwerty2, display size is now 240x432
 10-04 01:12:15.079: INFO/InputManager-Callbacks(73): No virtual keys found for device qwerty2.
 10-04 01:12:15.653: INFO/ARMAssembler(73): generated scanline__00000177:03515104_00001001_00000000 [ 91 ipp] (114 ins) at [0x44325520:0x443256e8] in 1138243 ns
 10-04 01:12:16.543: INFO/dalvikvm(73): Jit: resizing JitTable from 512 to 1024
 10-04 01:12:18.393: INFO/Process(239): Sending signal. PID: 239 SIG: 9
 10-04 01:12:18.403: INFO/ActivityManager(73): Process com.event.test (pid 239) has died.
 10-04 01:12:21.153: DEBUG/dalvikvm(178): GC_EXTERNAL_ALLOC freed 61K, 51% free 2947K/5895K, external 1202K/1400K, paused 48ms
 10-04 01:12:24.723: INFO/ActivityManager(73): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.event.test/.EventManagementActivity } from pid 178
 10-04 01:12:24.773: INFO/ActivityManager(73): Start proc com.event.test for activity com.event.test/.EventManagementActivity: pid=335 uid=10034 gids={}
 10-04 01:12:25.253: INFO/ARMAssembler(73): generated scanline__00000177:03515104_00001002_00000000 [ 87 ipp] (110 ins) at [0x443256f0:0x443258a8] in 551089 ns
 10-04 01:12:25.303: INFO/ActivityThread(335): Pub com.event.data.contentprovider: com.event.test.EventContentProvider
 10-04 01:12:25.583: DEBUG/AndroidRuntime(335): Shutting down VM
 10-04 01:12:25.583: WARN/dalvikvm(335): threadid=1: thread exiting with uncaught exception (group=0x40015560)
  10-04 01:12:25.594: ERROR/AndroidRuntime(335): FATAL EXCEPTION: main
  10-04 01:12:25.594: ERROR/AndroidRuntime(335): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.event.test/com.event.test.EventManagementActivity}: java.lang.NullPointerException
  10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.os.Handler.dispatchMessage(Handler.java:99)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.os.Looper.loop(Looper.java:123)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.app.ActivityThread.main(ActivityThread.java:3683)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at java.lang.reflect.Method.invokeNative(Native Method)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at java.lang.reflect.Method.invoke(Method.java:507)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at dalvik.system.NativeStart.main(Native Method)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335): Caused by: java.lang.NullPointerException
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at com.event.test.EventManagementActivity.onCreate(EventManagementActivity.java:21)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
 10-04 01:12:25.594: ERROR/AndroidRuntime(335):     ... 11 more
 10-04 01:12:25.603: WARN/ActivityManager(73):   Force finishing activity com.event.test/.EventManagementActivity
 10-04 01:12:26.123: WARN/ActivityManager(73): Activity pause timeout for HistoryRecord{4070aaa0 com.event.test/.EventManagementActivity}
 10-04 01:12:27.503: INFO/Process(335): Sending signal. PID: 335 SIG: 9
 10-04 01:12:27.543: WARN/InputManagerService(73): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4073ba40
 10-04 01:12:27.874: INFO/ActivityManager(73): Process com.event.test (pid 335) has died.
 10-04 01:12:36.575: WARN/ActivityManager(73): Activity destroy timeout for HistoryRecord{4070aaa0 com.event.test/.EventManagementActivity}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T00:47:22+00:00Added an answer on May 26, 2026 at 12:47 am

    The stack trace points you to the exact line of code that is causing the problem:

     at com.event.test.EventManagementActivity.onCreate(EventManagementActivity.java:21)
    

    While the stack trace can look confusing, it’s very useful. The key is to look past all of the Android classes, and trace it down to your class:

    com.event.test.EventManagementActivity.onCreate(EventManagementActivity.java:21) … the 21 means line 21.

    The null pointer exception usually means something is not instantiated. Debug, and step through to check your variables up to this line. You are referencing something null.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want my code to automatically try multiple ways to create a database connection.
I have an sqlite database on android created like this: sqlite> .schema CREATE TABLE
I want to take data from database and compare with system time.my android code
I have a distributed java application and I want to send the database data
I have a sqlite database in my application. I want to make an expandable
I want create a android application and i need to connect to a webservice
I have an application published in the android market, and now I want to
I want to create a database in which there's an n x m relationship
Ok, so I want to create a database with all the data of the
I want to create a large database of GPS coordinates that can be queried

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.