SQLiteOpenHelper。 getValue()处的空指针异常

时间:2014-06-17 19:27:44

标签: android sqlite nullpointerexception

我在getValues()时遇到空指针异常问题。

06-17 12:35:23.705:E / AndroidRuntime(626):在android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)

06-17 12:35:23.705:E / AndroidRuntime(626):在android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)

06-17 12:35:23.705:E / AndroidRuntime(626):at myfirst.project.Database.getValue(Database.java:48)

public class Database扩展了SQLiteOpenHelper {

public static final String PASSWORD_TABLE="PASSWORD";
public static final String NUMBER_PASSWD="NUMBER";

public Database(Context context) {
    super(context, "password.db", null, 1);
    // TODO Auto-generated constructor stub
}


@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    String sql = String
            .format("create table %s (%s TEXT PRIMARY KEY)",PASSWORD_TABLE,NUMBER_PASSWD);
    db.execSQL(sql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

}

public void storeValue(String pswd)
{
    SQLiteDatabase db=getWritableDatabase();
    db.delete(PASSWORD_TABLE, null, null);
    ContentValues value= new ContentValues();
    value.put(NUMBER_PASSWD, true);
    db.insert(PASSWORD_TABLE, null, value);
    Log.d(MainActivity.DEBUG_TAG, "Entered valu is stored");
    db.close();

}

public  String getValue()
{

    SQLiteDatabase db=getReadableDatabase();
    String sql = String.format("SELECT %sFROM %s ", NUMBER_PASSWD,PASSWORD_TABLE);
    db.close();
    Log.d(MainActivity.DEBUG_TAG,"Sending Value");
    return sql;

}

}

1 个答案:

答案 0 :(得分:1)

传递给数据库助手的Context为空。但是,您发布的代码并未真正显示上下文参数值的来源。

为有效的Context更改它可以解决此特定问题。它没有解决getValue()方法似乎没有多大意义的问题:它打开一个数据库,关闭它并返回一个语法错误的SQL字符串。