我在房間數據庫類中創建的抽象 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)
Room Dao空指針異常
慕工程0101907
2021-12-01 20:01:55