【问题标题】:Android NullPointerException while retrieving data from SQLite Database and storing it in an Array从 SQLite 数据库中检索数据并将其存储在数组中时出现 Android NullPointerException
【发布时间】:2013-09-09 14:41:46
【问题描述】:

我正在尝试从数据库中的列中检索字符串数据并插入到 android 中的字符串数组中。我使用以下代码检索数据 - (helper.java)

public String[] personslist() {
                // TODO Auto-generated method stub
                int i=0;
                Cursor c=myDataBase.rawQuery("select PersonName from Persons;",null);
                String[] values = {};

            for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
                   values[i] = c.getString(c.getColumnIndex("PersonName"));
                   i++;
                }
            return values;


        }

我在“adapter.java”类中使用了以下代码来返回personslist()返回的数据。

public String[] plist() {
    // TODO Auto-generated method stub

    String[] persons = mDbHelper.personslist(); //this is line no. 131 in adapter class
    return persons;
}

当我运行应用程序时,它崩溃并显示以下错误

09-08 08:23:19.715: E/AndroidRuntime(29373): Caused by: java.lang.NullPointerException
09-08 08:23:19.715: E/AndroidRuntime(29373):    at com.example.fromstart.adapter.plist(adapter.java:131)

查询,当在 sqlitebrowser 上运行时,它返回四行四个人的名字。但是,在应用程序上运行时,它返回 NullPointerException。你能建议我吗,我可能哪里出错了?

提前致谢。

【问题讨论】:

    标签: java android


    【解决方案1】:

    mDbHelper 为空。这就是引发异常的原因。确保它已被初始化。

    【讨论】:

      【解决方案2】:

      检查您在哪里初始化 mDbHelper。您正在执行 mDbHelpe.personslist()。在这里你的 mDbHelper 可能是 Null 和 nullpointer 异常。

      【讨论】:

        【解决方案3】:

        你有没有做过类似的初始化

        Context context;
        SQLiteDatabase db = null ;
        CallDBHelper dbHelp = null;
        
               public Constructor(Context context) {
                    this.context = context;
                    dbHelp = new CallDBHelper(context);
                    db = dbHelp.getWritableDatabase();
               }
        
               Cursor c = db.query(...
        

        【讨论】:

        • 不,@SriNath Ganesh,我确实这样做了,事实上我知道这是初始化 db 变量的错误方法。这就是我初始化 db 变量的方式 - `private SQLiteDatabase myDataBase; ` .
        • @nki ,您需要以某种方式(某种适当的格式)初始化您的变量。您可能有兴趣阅读完整的教程并从头开始尝试tutorials
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-26
        • 1970-01-01
        • 2011-12-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多