Java 调用游标时出现Android sqlite数据库空指针异常

Java 调用游标时出现Android sqlite数据库空指针异常,java,android,database,sqlite,Java,Android,Database,Sqlite,您好,我有问题,请查看我的代码: public void showfal() { Cursor cu = database.rawQuery("SELECT * FROM fal WHERE startdate = 'G.todaydate'", null); while (cu.moveToNext()) { farvardin.add(cu.getString(cu.getColumnIndex("farvardin")) + "");

您好,我有问题,请查看我的代码:

  public void showfal() {

    Cursor cu = database.rawQuery("SELECT * FROM fal WHERE startdate = 'G.todaydate'", null);

    while (cu.moveToNext()) {

        farvardin.add(cu.getString(cu.getColumnIndex("farvardin")) + "");
        ordibehesht.add(cu.getString(cu.getColumnIndex("ordibehesht")) + "");

        khordad.add(cu.getString(cu.getColumnIndex("khordad")) + "");
        tir.add(cu.getString(cu.getColumnIndex("tir")) + "");
        mordad.add(cu.getString(cu.getColumnIndex("mordad")) + "");
        shahrivar.add(cu.getString(cu.getColumnIndex("shahrivar")) + "");
        mehr.add(cu.getString(cu.getColumnIndex("mehr")) + "");
        aban.add(cu.getString(cu.getColumnIndex("aban")) + "");
        azar.add(cu.getString(cu.getColumnIndex("azar")) + "");
        dey.add(cu.getString(cu.getColumnIndex("dey")) + "");
        bahman.add(cu.getString(cu.getColumnIndex("bahman")) + "");
        esfand.add(cu.getString(cu.getColumnIndex("esfand")) + "");

    }

    cu.close();
}
当我调用showfal()时,我收到::

    08-07 11:52:00.545: E/AndroidRuntime(6362): FATAL EXCEPTION: main
08-07 11:52:00.545: E/AndroidRuntime(6362): java.lang.RuntimeException: Unable to start activity ComponentInfo{ir.aradmobaile.mhd.fal/ir.aradmobaile.mhd.fal.Activity_dailyfal}: java.lang.NullPointerException
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.os.Looper.loop(Looper.java:137)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.app.ActivityThread.main(ActivityThread.java:5041)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at java.lang.reflect.Method.invokeNative(Native Method)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at java.lang.reflect.Method.invoke(Method.java:511)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at dalvik.system.NativeStart.main(Native Method)
08-07 11:52:00.545: E/AndroidRuntime(6362): Caused by: java.lang.NullPointerException
08-07 11:52:00.545: E/AndroidRuntime(6362):     at ir.aradmobaile.mhd.fal.Activity_dailyfal.showfal(Activity_dailyfal.java:167)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at ir.aradmobaile.mhd.fal.Activity_dailyfal.onCreate(Activity_dailyfal.java:39)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.app.Activity.performCreate(Activity.java:5104)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
08-07 11:52:00.545: E/AndroidRuntime(6362):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
08-07 11:52:00.545: E/AndroidRuntime(6362):     ... 11 more
08-07 11:57:00.549: E/InputDispatcher(368): channel '534453b4 ir.aradmobaile.mhd.fal/ir.aradmobaile.mhd.fal.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
08-07 11:57:00.549: E/InputDispatcher(368): channel '5355de34 Toast (server)' ~ Channel is unrecoverably broken and will be disposed!


public class Activity_dailyfal extends MainActivity {

public static Database          db;
public SQLiteDatabase database;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.layout_fourth);
    db = new Database(this);
    db.database();
    db.open();
    showfal();
}

这是我的数据库活动:

    package ir.aradmobaile.mhd.fal;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
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;
公共类数据库扩展了SQLiteOpenHelper{

//    public final String   path = "data/data/ir.aradmobaile.dabiri.fal/databases/"; // adresi ke data barname mire dakhelesh
public final String   Name = "arad_db"; // name of database
public SQLiteDatabase mydb;

private final Context mycontext;
公共数据库(上下文){

我查了一下我的表,这有两条记录。
我搞不清楚我的错在哪里

我认为你的问题不对

并在访问它之前检查游标null


例如:
while(cu!=null&&cu.moveToNext()){

如果cloumn的名称正确,则使用

Cursor cu = database.rawQuery("SELECT * FROM fal WHERE startdate='"+ G.todaydate+"';", null);

是,在访问它之前检查(cursor!=null)。

您尚未初始化
数据库
成员变量。
Cursor cu = database.rawQuery("SELECT * FROM fal WHERE startdate='"+ G.todaydate+"';", null);