空指针java.lang.NullPointerException,求高手指导,感谢万分

sdf7901300 2011-02-18 03:51:19
02-18 07:41:43.549: ERROR/AndroidRuntime(513): java.lang.NullPointerException

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at com.nj.dao.UsersSerive.getUsersByLoginI(UsersSerive.java:25)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at com.nj.dao.UsersDaoImpl.getUsersByLoginId(UsersDaoImpl.java:19)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at com.nj.dao.One$1.onClick(One.java:34)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at android.view.View.performClick(View.java:2408)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at android.view.View$PerformClick.run(View.java:8816)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at android.os.Handler.handleCallback(Handler.java:587)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at android.os.Handler.dispatchMessage(Handler.java:92)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at android.os.Looper.loop(Looper.java:123)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at android.app.ActivityThread.main(ActivityThread.java:4627)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at java.lang.reflect.Method.invokeNative(Native Method)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at java.lang.reflect.Method.invoke(Method.java:521)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

02-18 07:41:43.549: ERROR/AndroidRuntime(513): at dalvik.system.NativeStart.main(Native Method)


这个是在运行到SQLiteDatabase sqlite=dbhelper.getWritableDatabase();这一步所出的错 求指导啊
下面的是我DBHelper的代码

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper{
private static final String name="mydata";
private static final int version=1;

public DBHelper(Context context) {
super(context, name, null, version);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table if not exists users(id integer primary key autoincrement,loginId varchar(50),password varchar(50))");
db.execSQL("insert into users(loginId,password) values('123','123')");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("drop table if exists users");
onCreate(db);
}
}
...全文
995 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐狮三摆手 2013-07-25
  • 打赏
  • 举报
回复
我也遇到这个问题,怎么解决的啊,着急啊,纠结啊!
hhn 2013-04-12
  • 打赏
  • 举报
回复
我也是 在构造函数里面已经申明了变量,到底问题出在哪里??
zhouzhoudadaweiwei 2012-09-11
  • 打赏
  • 举报
回复
我也是遇到这个问题,解决了吗,
heliit 2012-02-29
  • 打赏
  • 举报
回复
请问解决了没?我也遇到了dbhelper不是空,但是db = dbhelper.getWritableDatabase()这个时候就报空指针异常,db是null;
sdf7901300 2011-02-21
  • 打赏
  • 举报
回复
呃 我在重构方法时实例化了呀
private DBHelper dbhelper=null;
public UsersSerive(Context context){
dbhelper=new DBHelper(context);
}
CUG87525842 2011-02-21
  • 打赏
  • 举报
回复
楼上的正解!
sky123123 2011-02-21
  • 打赏
  • 举报
回复
[code=Jav]

dbhelper= new DBHelperUtil(context);

db = dbhelper.getWritableDatabase();
[/code]
sky123123 2011-02-21
  • 打赏
  • 举报
回复
[code=Jav]dbhelper= new DBHelperUtil(context);

db = dbhelper.getWritableDatabase();[/code]
sky123123 2011-02-21
  • 打赏
  • 举报
回复
你的dbhelper没有被实例化啊

sdf7901300 2011-02-21
  • 打赏
  • 举报
回复
上面的报错的UsersSerive.java:25 是这一行:SQLiteDatabase sqlite=dbhelper.getWritableDatabase();
UsersDaoImpl.java:19是:user=userSerive.getUsersByLoginId(loginId);
One.java:34是:Users user=userDao.getUsersByLoginId(loginId.getText().toString());

归根结底都是dbhelper.getWritableDatabase错了,返回的应该是空的 求指教

sdf7901300 2011-02-21
  • 打赏
  • 举报
回复
DBHelper和UsersSerive代码都在上面 下面给出UsersDaoImpl的代码
package com.nj.dao;

import android.test.AndroidTestCase;
import android.util.Log;

import com.nj.entity.Users;

public class UsersDaoImpl extends AndroidTestCase {
public void save(Users user){
UsersSerive userSerive=new UsersSerive(this.getContext());
userSerive.save(user);
}

public Users getUsersByLoginId(String loginId){
Log.e("userDaoImpl", loginId);
UsersSerive userSerive=new UsersSerive(this.getContext());
Users user=new Users();
Log.e("userDaoImpl2", loginId);
user=userSerive.getUsersByLoginId(loginId);
return user;
}
}
whatwhy83 2011-02-21
  • 打赏
  • 举报
回复
哪个实例没有初始化吧
sdf7901300 2011-02-21
  • 打赏
  • 举报
回复
下面我贴出来我DBHelper和UsersSerive和UsersDaoImpl的代码 各位大大看看哦
archer_xy 2011-02-21
  • 打赏
  • 举报
回复
没实例化对象。。。
sdf7901300 2011-02-20
  • 打赏
  • 举报
回复
谢谢各位大大的回帖,这两天有事没能登录论坛,明天我就上班,明天把代码都贴出来,求各位大大指教
freshui 2011-02-18
  • 打赏
  • 举报
回复
加trace看看吧。

UsersSerive.java:25
这是哪句啊?
aloie 2011-02-18
  • 打赏
  • 举报
回复
空指针异常是最简单的异常了,报哪儿空就看看哪儿
纠结的木棉花 2011-02-18
  • 打赏
  • 举报
回复
那上面有提示错误的行数,把那片代码贴出来吧
dinjay 2011-02-18
  • 打赏
  • 举报
回复
dbhelper是空的呗,new DBHelper时候看看有没有异常
最好先初始化一下private DBHelper dbhelper = null;
sdf7901300 2011-02-18
  • 打赏
  • 举报
回复
我的serive的代码如下
public class UsersSerive {
private DBHelper dbhelper;
public UsersSerive(Context context){
dbhelper=new DBHelper(context);
}

//保存
public void save(Users user){
SQLiteDatabase sqlite=dbhelper.getWritableDatabase();
sqlite.execSQL("insert into users(loginid,password) values(?,?)",new Object[]{user.getLoginId(),user.getPassword()});
}

//根据用户名查找
public Users getUsersByLoginId(String loginId){
Log.e("userserive4", loginId);
SQLiteDatabase sqlite=dbhelper.getWritableDatabase();
Log.e("userserive", loginId);
Cursor cursor=sqlite.rawQuery("select * from users where loginId=?", new String[]{loginId});
Log.e("userserive2", loginId);
if(cursor.moveToNext()){
Users user=new Users();
Log.e("userserive3", loginId);
user.setId(cursor.getInt(0));
user.setLoginId(cursor.getString(1));
user.setPassword(cursor.getString(2));
return user;
}
return null;
}
}
传的就是一个context啊 这里没有activity
加载更多回复(3)

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧