02-18 07:41:43.549: ERROR/AndroidRuntime(513): java.lang.NullPointerException02-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);
}
}
这个是在运行到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);
}
}
//实例化你的dbhelper类
DBHelper dbhelper=new DBHelper(activity名字.this);
sqlite=dbhelper.getWritableDatabase();
//实例化你的dbhelper类
DBHelper dbhelper=new DBHelper(activity名字.this);
SQLiteDatabase sqlite=dbhelper.getWritableDatabase();
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
最好先初始化一下private DBHelper dbhelper = null;
这是哪句啊?
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;
}
}
UsersDaoImpl.java:19是:user=userSerive.getUsersByLoginId(loginId);
One.java:34是:Users user=userDao.getUsersByLoginId(loginId.getText().toString());归根结底都是dbhelper.getWritableDatabase错了,返回的应该是空的 求指教
[/code]
private DBHelper dbhelper=null;
public UsersSerive(Context context){
dbhelper=new DBHelper(context);
}