Android getReadableDatabase第一行的NullPointerException
我在getReadbleDatabase上收到一个nullpointer异常Android getReadableDatabase第一行的NullPointerException,android,sqlite,exception,null,Android,Sqlite,Exception,Null,我在getReadbleDatabase上收到一个nullpointer异常 public List<Offer> getOffers(String offer_category) { db = this.getReadableDatabase(); String sql = "select * from offer_db "+TABLE_OFFER + " where "+ OFFER_CATEGORY+ " is
public List<Offer> getOffers(String offer_category)
{
db = this.getReadableDatabase();
String sql = "select * from offer_db "+TABLE_OFFER + " where "+ OFFER_CATEGORY+ " is "+ offer_category;
Cursor cur = db.rawQuery(sql,null);
cur.moveToFirst();
}
public List getOffers(字符串offer\u类别)
{
db=this.getReadableDatabase();
String sql=“select*from offer\u db”+TABLE\u offer+”其中“+offer\u CATEGORY+”是“+offer\u CATEGORY”;
游标cur=db.rawQuery(sql,null);
cur.moveToFirst();
}
这是logcat数据
原因:java.lang.NullPointerException位于
android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
在
android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
在
com.example.shreyfrapp.DatabaseHandler.getOffers(DatabaseHandler.java:61)
在com.example.shreyfrapp.FragmentTab1.onCreate(FragmentTab1.java:39)上
在android.app.Fragment.performCreate(Fragment.java:1678)的
android.app.FragmentManagerImpl.moveToState(FragmentManager.java:859)
在
FragmentManagerImpl.moveToState(FragmentManager.java:1062)
运行(BackStackRecord.java:684)
FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
在android.app.Activity.performStart(Activity.java:5240)上
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2168)
在
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
在android.app.ActivityThread.access$800(ActivityThread.java:135)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
位于android.os.Handler.dispatchMessage(Handler.java:102)
Looper.loop(Looper.java:136)位于
android.app.ActivityThread.main(ActivityThread.java:5021)位于
java.lang.reflect.Method.Invokenactive(本机方法)位于
java.lang.reflect.Method.invoke(Method.java:515)位于
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
dalvik.system.NativeStart.main(本机方法)
用大写字母表示查询,并在“is”处尝试“=”。为什么要将光标移动到select查询中的第一个位置?假设logcat在
getDatabaseLocked()
中显示NPE,请确保将有效的上下文
传递给您的sqlite帮助程序。在抓取logcat时,看一看-您的数据库+表名之间需要一个
,还需要使用=
而不是is
来与列值和字符串周围的引号进行比较我已经发布了日志猫…在我实例化数据库对象的地方出现了错误。查询必须稍后执行。实际上,您正在访问哪个数据库?