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

  • SEARCH
  • Home
  • 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 6902447
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T07:47:57+00:00 2026-05-27T07:47:57+00:00

Possible Duplicate: I can’t figure out what’s wrong with my NullPointerException or why it

  • 0

Possible Duplicate:
I can’t figure out what’s wrong with my NullPointerException or why it even exists

What are they? My application keeps crashing whenever I try to pass an object over to my database helper.

The variable name is "e". I’ve had the data in the object display in a toast notification and everything is fine but when i try to pass it to the database helper I get nothing. I’ve even added Logs to every second line but nothing gets passed as the method never starts.

I also tried adding the values from the object into separate variables and passing them through (I rewrote the helper method) but it still crashes.

I’m very close to throwing my laptop through the window, please help me.

My placeholder search class

package com.exame.mediacatalogue;

//This class is used to query the details of the barcode scanned or entered
//This in done in lieu of an open online database
//If an online database is found this class can be replaced to utilise it
public class SearchForBarcode{
//Initialise Variables
public String barcode;
public String mediatype;
public String title;
public String author;

//Set variables based on the input barcode
public SearchForBarcode(String inputBarcode){        
    barcode = inputBarcode;
    //An if statement is used because switch case cannot be used for anything other than int
    //And a 13 digit barcode is too big to fit in an int variable.
    //(JDK 1.7 supports string based cases but Android does not support it)
    if (barcode.equals("5014503113629")){
        mediatype = "DVD";
        title = "The Young Ones Series One";
        author = "Rik Mayall, Ade Edmondson, Nigel Planer, Christopher Ryan, Alexei Sayle";
    }
    else if (barcode.equals("5014503151423")){
        mediatype = "DVD";
        title = "The Office: Complete Series One & Two";
        author = "Ricky Gervais, Martin Freeman, Mackenzie Crook, Lucy Davis";
    }
    else if (barcode.equals("5050582261103")){
        mediatype = "DVD";
        title = "Shaun of the Dead";
        author = "Simon Pegg, Nick Frost, Lucy davis, Kate Ashfield, Dylan Moran, Bill Nighy, Penelope Wilton";
    }
    else if (barcode.equals("5021290037243")){
        mediatype = "Game";
        title = "Batman: Arkham Asylum (PS3)";
        author = "Warner Brothers";
    }
    else if (barcode.equals("5026555402323")){
        mediatype = "Game";
        title = "Bioshock 2 (PS3)";
        author = "2K Games";
    }
    else if (barcode.equals("5021290046573")){
        mediatype = "Game";
        title = "Tomb Raider Trilogy HD (PS3)";
        author = "Crystal Dynamics";
    }
    else if (barcode.equals("6025273901261")){
        mediatype = "CD";
        title = "Flesh Tone";
        author = "Kelis";
    }
    else if (barcode.equals("724358480924")){
        mediatype = "CD";
        title = "Duran Duran";
        author = "Duran Duran";
    }
    else if (barcode.equals("5099969605529")){
        mediatype = "CD";
        title = "Sounds of the Universe";
        author = "Depeche Mode";
    }
    else if (barcode.equals("9781427802118")){
        mediatype = "Book";
        title = "Sgt Frog Vol. 13";
        author = "Mine Yoshizaki";
    }
    else if (barcode.equals("978009940953")){
        mediatype = "Book";
        title = "Star Wars - The New Jedi Order: Vector Prime";
        author = "R. A. Salvatore";
    }
    else{
        mediatype = "Not Found";
        title = "Not Found";
        author = "Not Found";
    }
}
}

My Database Helper class

package com.example.mediacatalogue;

import java.util.ArrayList;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DatabaseHelper {
    private static final String DATABASE_NAME = "mediaDatabase";
private static final int DATABASE_VERSION = 2;
private static final String TABLE_NAME = "table";

private OpenHelper mDbHelper;
private SQLiteDatabase mDb;
private SQLiteDatabase mDbr;
private final Context mCtx;

private static final String TAG = "UserDbAdapter";

private static class OpenHelper extends SQLiteOpenHelper{
    OpenHelper(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table "+TABLE_NAME+"" +
                " (_id integer primary key," +
                " mediatype text not null," +
                " title text not null" +
                " author text not null" +
                " wishlist integer" +
                ");");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }

}
public DatabaseHelper(Context ctx) {
    this.mCtx = ctx;
}
 //This method is called from the controlling class when the open() call is used
//it creates an instance of openHelper (detailed above) and sets up appropriate   
//connections to the database.
public DatabaseHelper open() throws SQLException {
    mDbHelper = new OpenHelper(mCtx);
    mDb = mDbHelper.getWritableDatabase();
    mDbr = mDbHelper.getReadableDatabase();
    return this;
}
//used to close db connections
public void close() {
    mDbHelper.close();
}
//When we wish to insert a record we can call this method, passing   
//in the appropriate parameters.  The method then binds the   
//parameters to the insert command and then executes it
//against the appropriate table in the mDB database instance
public long addMedia(SearchForBarcode result) {
    Log.d(TAG,"Line 1");        
    ContentValues initialValues = new ContentValues();
    Log.d(TAG,"Line 2");        
    initialValues.put("_id", result.barcode);
    Log.d(TAG,"Line 3");        
    initialValues.put("mediatype", result.mediatype);
    Log.d(TAG,"Line 4");        
    initialValues.put("title", result.title);
    Log.d(TAG,"Line 5");        
    initialValues.put("author", result.author);
    Log.d(TAG,"Line 6");        
    initialValues.put("wishlist", 0);
    Log.d(TAG,"Line 7");        
    
    return mDb.insert(TABLE_NAME, null, initialValues);
}  
//This function is used to delete an item from the database by passing through the barcode for the item.
public void deleteMedia(String barcode) {
    String args = "_id = "+barcode;
    mDb.delete(TABLE_NAME, args, null);
}

public void UpdateWishlist(String barcode, String addOrRemove){
    ContentValues args = new ContentValues();
    if(addOrRemove.equals("add")){
        args.put("wishlist", "1");
    }
    else{
        args.put("wishlist","0");
    }
    mDb.update(TABLE_NAME, args, "barcode = ?", new String[]{barcode});
}

//This function is used to select all the madia of a particular type for displaying in the tabs
public ArrayList<String[]> selectMedia(String mediatype) {
    ArrayList<String[]> results = new ArrayList<String[]>();
    int counter = 0;
    Cursor cursor = this.mDbr.query(TABLE_NAME, new String[]{"_id", "title", "author", "rating"}, "mediatype = "+"?",new String[]{mediatype}, null, null, "title asc");
    if (cursor.moveToFirst()) {
        do {
            results.add(new String[3]);
            results.get(counter)[0] = cursor.getString(0).toString();
            results.get(counter)[1] = cursor.getString(1).toString();
            results.get(counter)[2] = cursor.getString(2).toString();
            results.get(counter)[3] = cursor.getString(3).toString();
            counter++;
        } while (cursor.moveToNext());
    }
    if (cursor != null && !cursor.isClosed()) {
        cursor.close();
    }
    return results;
}
}

I use the two together like so:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
    if (scanResult != null) {
        if (resultCode == 0){
            //If the user cancels the scan
            Toast.makeText(getApplicationContext(),"You cancelled the scan", 3).show();
        }
        else{
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            if (format.equals("EAN_13") || format.equals("UPC_A")){
                //If the barcode scanned is of the correct type then pass the barcode into the search method to get the product details
                SearchForBarcode result = new SearchForBarcode(contents);
                Log.d(TAG,"Got from Database");        
                if(result.title.equals("Not Found")){
                    Toast.makeText(getApplicationContext(), "Details Not Found", 5).show();
                }
                else{
                    if(database.addMedia(result)>=0){
                        Toast.makeText(getApplicationContext(),result.title+" added to catalogue", 5).show();                    
                    }
                    else{
                        Toast.makeText(getApplicationContext(), "The product is already in the database", 5).show();
                    }
                }
            }
            else{
                //If the barcode is not of the correct type then display a notification
                Toast.makeText(getApplicationContext(),contents+" "+format, 3).show();
            }
        }
    }
}

Log cat:

12-08 16:28:20.525: I/System.out(6862): Sending WAIT chunk
12-08 16:28:20.525: W/ActivityThread(6862): Application com.example.mediacatalogue is waiting for the debugger on port 8100...
12-08 16:28:20.626: I/dalvikvm(6862): Debugger is active
12-08 16:28:20.726: I/System.out(6862): Debugger has connected
12-08 16:28:20.726: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:20.926: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:21.126: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:21.326: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:21.526: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:21.737: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:21.937: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:22.137: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:22.337: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:22.537: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:22.738: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:22.938: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:23.138: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:23.338: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:23.538: I/System.out(6862): waiting for debugger to settle...
12-08 16:28:23.739: I/System.out(6862): debugger has settled (1439)
12-08 16:28:24.089: D/dalvikvm(6862): GC_EXTERNAL_ALLOC freed 53K, 50% free 2726K/5379K, external 0K/0K, paused 31ms
12-08 16:28:28.784: W/KeyCharacterMap(6862): Can't open keycharmap file
12-08 16:28:28.784: W/KeyCharacterMap(6862): Error loading keycharmap file '/system/usr/keychars/atmel-touchscreen.kcm.bin'. hw.keyboards.131074.devname='atmel-touchscreen'
12-08 16:28:28.784: I/KeyCharacterMap(6862): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
12-08 16:28:31.636: D/PhoneWindow(6862): couldn't save which view has focus because the focused view com.android.internal.policy.impl.PhoneWindow$DecorView@40515630 has no id.
12-08 16:28:33.718: W/IInputConnectionWrapper(6862): showStatusIcon on inactive InputConnection
12-08 16:28:33.748: W/IInputConnectionWrapper(6862): InputConnection = android.view.inputmethod.BaseInputConnection@4052b0b8, active client = false
12-08 16:28:38.553: D/MainActivity(6862): Got from Database
12-08 16:29:12.206: W/ActivityThread(7049): Application com.example.mediacatalogue is waiting for the debugger on port 8100...
12-08 16:29:12.216: I/System.out(7049): Sending WAIT chunk
12-08 16:29:12.226: I/dalvikvm(7049): Debugger is active
12-08 16:29:12.416: I/System.out(7049): Debugger has connected
12-08 16:29:12.416: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:12.616: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:12.817: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:13.017: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:13.217: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:13.427: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:13.627: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:13.817: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:14.028: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:14.228: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:14.428: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:14.628: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:14.828: I/System.out(7049): waiting for debugger to settle...
12-08 16:29:15.029: I/System.out(7049): debugger has settled (1343)
12-08 16:29:15.269: D/dalvikvm(7049): GC_EXTERNAL_ALLOC freed 58K, 50% free 2726K/5379K, external 0K/0K, paused 30ms
12-08 16:29:16.650: W/KeyCharacterMap(7049): Can't open keycharmap file
12-08 16:29:16.650: W/KeyCharacterMap(7049): Error loading keycharmap file '/system/usr/keychars/atmel-touchscreen.kcm.bin'. hw.keyboards.131074.devname='atmel-touchscreen'
12-08 16:29:16.650: I/KeyCharacterMap(7049): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
12-08 16:29:18.973: D/PhoneWindow(7049): couldn't save which view has focus because the focused view com.android.internal.policy.impl.PhoneWindow$DecorView@405132f8 has no id.
12-08 16:29:20.044: W/IInputConnectionWrapper(7049): showStatusIcon on inactive InputConnection
12-08 16:29:20.044: W/IInputConnectionWrapper(7049): InputConnection = android.view.inputmethod.BaseInputConnection@4052b0a8, active client = false
12-08 16:29:25.249: D/MainActivity(7049): Got from Database
12-08 16:29:31.895: D/AndroidRuntime(7049): Shutting down VM
12-08 16:29:31.895: W/dalvikvm(7049): threadid=1: thread exiting with uncaught exception (group=0x4001d5a0)
12-08 16:29:31.965: E/AndroidRuntime(7049): FATAL EXCEPTION: main
12-08 16:29:31.965: E/AndroidRuntime(7049): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=195543262, result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 (has extras) }} to activity {com.example.mediacatalogue/com.example.mediacatalogue.MainActivity}: java.lang.NullPointerException
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.app.ActivityThread.deliverResults(ActivityThread.java:2883)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:2925)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.app.ActivityThread.access$2000(ActivityThread.java:132)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1063)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.os.Looper.loop(Looper.java:143)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.app.ActivityThread.main(ActivityThread.java:4196)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at java.lang.reflect.Method.invokeNative(Native Method)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at java.lang.reflect.Method.invoke(Method.java:507)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at dalvik.system.NativeStart.main(Native Method)
12-08 16:29:31.965: E/AndroidRuntime(7049): Caused by: java.lang.NullPointerException
12-08 16:29:31.965: E/AndroidRuntime(7049):     at com.example.mediacatalogue.MainActivity.onActivityResult(MainActivity.java:193)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.app.Activity.dispatchActivityResult(Activity.java:4010)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.app.ActivityGroup.dispatchActivityResult(ActivityGroup.java:123)
12-08 16:29:31.965: E/AndroidRuntime(7049):     at android.app.ActivityThread.deliverResults(ActivityThread.java:2879)
12-08 16:29:31.965: E/AndroidRuntime(7049):     ... 11 more
12-08 16:29:33.467: I/Process(7049): Sending signal. PID: 7049 SIG: 9

  • 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-27T07:47:58+00:00Added an answer on May 27, 2026 at 7:47 am

    Instead of throwing your laptop out of the window, why not start by understanding what a NullPointerException is, then looking into how to debug an Android application.

    You should be able to step through your code execution to pinpoint exactly which line of code is causing the exception. Diagnosing the cause is usually quite easy once you’ve found the problem.

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

Sidebar

Related Questions

Possible Duplicate: How can I pre-set arguments in JavaScript function call? (Partial Function Application)
Possible Duplicate: Can i override HOME Button on my own Home-Screen from my application?
Possible Duplicate: Can I tell Linux not to swap out a particular processes' memory?
Possible Duplicate: Can't get Twitter OAuth callback authentication to work in Cocoa application I
Possible Duplicate: Can I write an iPhone application in any language other than Objective-C?
Possible Duplicate: Can I embed a custom font in an iPhone application? Hi I
Possible Duplicate: Can’t operator == be applied to generic types in C#? I've got
Possible Duplicate: Can’t operator == be applied to generic types in C#? I've coded
Possible Duplicate: Can you animate a height change on a UITableViewCell when selected? This
Possible Duplicate: Can Read-Only Properties be Implemented in Pure JavaScript? I have an Object

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.