亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Room Dao空指針異常

Room Dao空指針異常

慕工程0101907 2021-12-01 20:01:55
我在房間數據庫類中創建的抽象 Dao 方法出現空指針異常。雖然我提到的幾個示例項目做同樣的事情,但它的工作原理。我不明白這個實例在其他項目中何時何地被初始化。下面是我的主要活動代碼:這是我的應用程序數據庫:package com.example.datta.roomtest.Database;import android.arch.persistence.room.Database;import android.arch.persistence.room.Room;import android.arch.persistence.room.RoomDatabase;import android.content.Context;import com.example.datta.roomtest.Dao.PlayerDao;import com.example.datta.roomtest.Entity.Player;@Database(entities = {Player.class},version = 1)public abstract class AppDatabase extends RoomDatabase {private static AppDatabase appDatabase;public static AppDatabase getInstance(Context context){    if(appDatabase!=null){        appDatabase = Room.databaseBuilder(context.getApplicationContext(),                AppDatabase.class, "database-name").build();        }    return appDatabase;}  public abstract PlayerDao getPlayerDao();}調用此 getPlayerDao() 方法時,我收到此空指針錯誤: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.example.datta.roomtest.Dao.PlayerDao com.example.datta.roomtest.Database.AppDatabase.getPlayerDao()' on a null object reference        at com.example.datta.roomtest.MainActivity$DbAsync.doInBackground(MainActivity.java:97)        at com.example.datta.roomtest.MainActivity$DbAsync.doInBackground(MainActivity.java:71)        at android.os.AsyncTask$2.call(AsyncTask.java:316)
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

getInstance() 由于錯誤的測試總是返回 null:


public static AppDatabase getInstance(Context context){

    if(appDatabase!=null){ // <= ERROR HERE, should be == null

        appDatabase = Room.databaseBuilder(context.getApplicationContext(),

                AppDatabase.class, "database-name").build();

    }

    return appDatabase;


}


查看完整回答
反對 回復 2021-12-01
  • 1 回答
  • 0 關注
  • 378 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號