监督生 2023-04-23 21:52 采纳率: 66.7%
浏览 61
已结题

“尝试在空对象引用和三滴哦i阿勇虚拟方法”这个错误到底在哪,或者说这个我问题一般都会因为什么出现的

我的设计是想要在主程序中运用实例化的SQLiteOpenHeper中的查询功能,然后返回一个List给主程序,主程序接到传来的List后转化为一个二维数组,然后可以将里面的内容分开展示。
但是我在运行的时候,就一直在闪退,我看了debug,说我“尝试在空对象引用上调用虚拟方法”,我实在是找不到哪里有问题了,恳请大家们帮我看看。

这是是查询:

public List<Card2> sQuery(){
        Card2 card;
        List<Card2> list = new ArrayList<>();
        String sql = "SELECT * FROM "+TABLE_NAME+" WHERE "+WEIGHT+" =5";
        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
        Cursor cursor = sqLiteDatabase.rawQuery(sql, null);
        int idIndex = cursor.getColumnIndex(ID);
        int questionIndex = cursor.getColumnIndex(QUESTION);
        int answerIndex = cursor.getColumnIndex(ANSWER);
        int weightIndex = cursor.getColumnIndex(WEIGHT);
        while (cursor.moveToNext()){
            card = new Card2(cursor.getInt(idIndex),cursor.getString(questionIndex),cursor.getString(answerIndex),cursor.getInt(weightIndex));
            list.add(card);
        }
        cursor.close();
        sqLiteDatabase.close();

        return list;
    }

这个是主程序引入

List<Card2> list = new ArrayList<>();
        list = db.sQuery();//老是说我这里有问题
        String[][] str = list.toArray(new String[0][]);
        tvq.setText(str[i][1]);
        tva.setText(str[i][2]);

这是debug中标出的bug

img

还有一个就是我自定义的一个类

这是类里面定义的变量(是这么叫吧我不记得了

    private Integer id;
    private String question;
    private String answer;
    private Integer weight;

还有一点有问题的是下面的set有两个是灰色的,但是我看不出来哪里有问题

img

这个问题我找了半天了,实在是能力不够
;(

  • 写回答

4条回答 默认 最新

  • 阳光宅男xxb 2023-04-24 07:16
    关注

    根据你提供的信息看,具体的错误是说:java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.skypen.mycard.MyDataHelper.sQuery()' on a null object reference ,意思就是你在一个空的对象引用上调用虚拟方法,因此,解决方法就是,检查 list = db.sQuery();这里的这个db对象是否为空,有没有初始化db对象:

    db = new MyDataHelper()
    
    

    如果你已经初始化了db对象,还是这个错误,你可以加一个判断:
    if db!=null{
    list = db.sQuery()
    }
    或者调试程序看看

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月4日
  • 已采纳回答 4月26日
  • 创建了问题 4月23日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音