在android中对SQLite Db执行查询时出现NullPointerException [重复]

Posted

技术标签:

【中文标题】在android中对SQLite Db执行查询时出现NullPointerException [重复]【英文标题】:NullPointerException when executing query on SQLite Db in android [duplicate] 【发布时间】:2017-05-09 21:13:25 【问题描述】:

现在我在这里得到空指针异常。在 ViewAllData 方法 myAdapter = new SQLCustomViewAllDataAdapter(SQLViewAllData.this,aList); here 中,我在创建构造函数时遇到错误。

SQLViewAllData.java

public class SQLViewAllData extends Activity 

private SQLDbHelper myDbHelper;
private SQLCustomViewAllDataAdapter myAdapter;
private ListView myListView;
private ArrayList<SQLPojo.UserDetails> aList = new ArrayList<>();
//private Context myContext;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview_view_data);
    //myContext = this;

    widgetInitialization();
    viewAllData();

//Initializing Widgets
public void widgetInitialization() 
    myDbHelper = new SQLDbHelper( this );
    myListView = (ListView)findViewById( R.id.listview_view_data_LV );


public ArrayList<SQLPojo.UserDetails> getUserInfo()
    return myDbHelper.getUserDetails();


//view all data stored in DB
public void viewAllData() 
    aList = getUserInfo();
    myAdapter = new SQLCustomViewAllDataAdapter(SQLViewAllData.this,aList);
    myListView.setAdapter(myAdapter);

【问题讨论】:

试试myDbHelper = new SQLDbHelper( SQLViewAllData.this); 你为什么要重复问题:***.com/questions/41306863/…? 这里有一个链接很好地解释了不同的上下文及其用途。 possiblemobile.com/2013/06/context 【参考方案1】:

你需要改变:

myDbHelper = new SQLDbHelper( myContext );

myDbHelper = new SQLDbHelper(this);

同时删除“Activity myContext”字段,因为您的类已经扩展了 Activity。

【讨论】:

OP 可能需要myContext 供以后使用,因此您也可以建议在调用该函数之前在oncreate 中分配myContext = this @PavneetSingh 如果他在某个地方需要上下文,他将传递 this 而不是无意义的字段 想想,可能有 2 个其他函数使用相同的变量,或者可能没有,但如果它存在,那么 IMO 你可以向 OP 解释为什么 mcontext 为空以及他能做什么如果有任何类似的情况,请务必解决此问题,剩下的当前问题将以此解决,所以我确实首先投票给你【参考方案2】:

你还没有初始化上下文,即 myContext

【讨论】:

这应该只是一个评论。我知道你还不能发表评论,但尽量不要发表评论作为答案 他需要 50 声望才能发表评论。所以他无法发表评论。他不是故意的

以上是关于在android中对SQLite Db执行查询时出现NullPointerException [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 CursorLoader 查询 SQLite DB 并填充 AutoCompleteTextView

Kivy Android Sqlite3使应用程序崩溃时出现“没有这样的模块”错误

Android SQLite在应用中数据保存查询,但是拷贝的xxx.db没有数据或没有更新,.db_wal和.db_shm文件

SQLite - 跨数据库查询不起作用

Android SQLite:哪个查询(“query”或“rawQuery”)更快?

在Android SQLITE中删除多行