SQLite并返回特定的行

时间:2014-05-08 03:17:53

标签: android sqlite

我不确定我的问题是什么。我尝试了一切。这是我的代码:

public Album getAlbum(int id){
    SQLiteDatabase db = this.getReadableDatabase();
    Log.d("ID number", id + "");
    String selectQuery = "SELECT * FROM " + TABLE_ALBUM + " WHERE " + KEY_ID + " = " + id;
    Cursor cursor = db.rawQuery(selectQuery, null);
    cursor.moveToFirst();
    Log.d("Count", cursor.getCount() + "");
    if(cursor != null && cursor.moveToFirst()){         
        Album album = new Album(cursor.getString(1), cursor.getString(2), cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6),cursor.getString(7),Utility.getPhoto(cursor.getBlob(8)));
        cursor.close();
        return album;
    }
    return null;
}

我正在打印出值:

05-08 03:14:03.066: E/album position(1285): 1
05-08 03:14:03.156: D/ID number(1285): 1
05-08 03:14:03.156: D/Count(1285): 0
05-08 03:14:03.196: E/AndroidRuntime(1285): FATAL EXCEPTION: main
05-08 03:14:03.196: E/AndroidRuntime(1285): java.lang.RuntimeException: Unable to start     activity ComponentInfo{sparkdesignz.momenture/sparkdesignz.momenture.AlbumInfoActivity}: java.lang.NullPointerException

在上面的日志文件中,我展示了我想要获得的(位置)。我在方法中再次显示它,然后我从光标显示值。有人请让我知道我做错了什么。

由于

这是我的完整日志

05-08 03:14:03.166: W/dalvikvm(1285): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
05-08 03:14:03.196: E/AndroidRuntime(1285): FATAL EXCEPTION: main
05-08 03:14:03.196: E/AndroidRuntime(1285): java.lang.RuntimeException: Unable to start activity ComponentInfo{sparkdesignz.momenture/sparkdesignz.momenture.AlbumInfoActivity}: java.lang.NullPointerException
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at  android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.os.Looper.loop(Looper.java:137)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.app.ActivityThread.main(ActivityThread.java:4424)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at java.lang.reflect.Method.invokeNative(Native Method)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at java.lang.reflect.Method.invoke(Method.java:511)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at dalvik.system.NativeStart.main(Native Method)
05-08 03:14:03.196: E/AndroidRuntime(1285): Caused by: java.lang.NullPointerException
05-08 03:14:03.196: E/AndroidRuntime(1285):     at sparkdesignz.momenture.AlbumInfoActivity.onCreate(AlbumInfoActivity.java:48)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.app.Activity.performCreate(Activity.java:4465)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
05-08 03:14:03.196: E/AndroidRuntime(1285):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)

1 个答案:

答案 0 :(得分:0)

onCreate函数的AlbumInfoActivity.java中的第48行包含一个未初始化的变量,检查它是什么..