源码:   Button login_Button = (Button)this.findViewById(R.id.login_Button);       
        login_Button.setOnClickListener(new Button.OnClickListener(){             
         public void onClick(View v){                                  //店家登陆按钮
         final String name_str = name_Edittext.getText().toString();
                final String password_str =password_Edittext.getText().toString();
                SQLiteDatabase db =all_database.login.getReadableDatabase();   
                Cursor cursor = db.rawQuery("select * from log_in where name= ? and password=?",
                 new String[]{name_str,password_str }); 
                if(cursor.getCount() != 0){
                 createAlertDialog();
                }         }
        });
其中login是全局变量。在all_database中定义:public class all_database {
public static login_Databasehelper login;
}
我输入的是数据库中已有的name和password,其中第三条出错信息是指的new String[]{name_str,password_str }
出错信息:
12-07 14:22:35.244: E/AndroidRuntime(222): Uncaught handler: thread main exiting due to uncaught exception
12-07 14:22:35.284: E/AndroidRuntime(222): java.lang.NullPointerException
12-07 14:22:35.284: E/AndroidRuntime(222):  at com.androidbook.Luncher_windowActivity$2.onClick(Luncher_windowActivity.java:38)
12-07 14:22:35.284: E/AndroidRuntime(222):  at android.view.View.performClick(View.java:2364)

请问java.lang.NullPointerException是哪来的?
哪里有问题,该怎么改?

解决方案 »

  1.   


    这样代码不好找错误,毕竟你那么多代码。这只是一小部分。你看看我的研究吧,这个代码不一定是这里的错误。public Cursor query(String sql, String[] args){
    SQLiteDatabase db = this.getReadableDatabase();
    return db.rawQuery(sql, args);
    }Cursor cursor = db.query("select _id from routine_detail where rest_id = ?", new String[]{id+""});
    if (cursor.moveToNext()) {
    itemId = cursor.getInt(cursor.getColumnIndex("_id"));
    ifLoad = true;

    cursor.close();
      

  2.   

    顺便提醒cursor.close();你的代码这里没啥错误,估计你数据库封装类没搞好哦。
      

  3.   


    public boolean updateThumb(int id,String thumb){
    ContentValues values=new ContentValues();
    values.put(THUMB_PATH,thumb);
    return mdb.update(TABLE_NAME, values, KEY+"="+id, null)>0;
    } public boolean updatePathAndOcr(int id,String imagePath,String OcrResult){
    ContentValues values=new ContentValues();
    values.put(IMG_PATH, imagePath);
    values.put(RECOG, OcrResult);
    return mdb.update(TABLE_NAME, values, KEY+"="+id, null)>0;
    }上面我的是通过SQLiteDatabase进行操作的,你上面的错误是空指针异常,而且是在类的38行,请给出这行的代码
      

  4.   

    异常信息: 12-07 14:22:35.284: E/AndroidRuntime(222): at com.androidbook.Luncher_windowActivity$2.onClick(Luncher_windowActivity.java:38)login_Button.setOnClickListener(new Button.OnClickListener(){    
    改为:login_Button.setOnClickListener(new android.view.View.OnClickListener(){