在使用SQLiteAssetHelper打开和升级数据库时,我收到了很多关于NPE的Crashlytics报告。我做了一些研究,发现我并不是唯一一个在OnePlus设备上出现此问题的人。
在我的应用程序中,我在assets / databases文件夹中发送了一个数据库,然后将其复制到数据库路径。
这是我的数据库类:
public class SQLHelper extends SQLiteAssetHelper {
private static SQLHelper instance;
private final Context context;
private static final String DB_NAME = "database.db";
private static final int DB_VERSION = 2015122001;
} private SQLHelper(Context context) {
super(context, DB_NAME, context.getDatabasePath(DB_NAME).getParent(), null, DB_VERSION);
this.context = context;
setForcedUpgrade();
}
}
如您所见,我尝试使用Context.getDatabasePath方法,该方法应返回保存数据库的路径。使用为您选择数据库路径的默认SQLiteAssetHelper构造函数时也会发生同样的错误。
崩溃论报告:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.database.sqlite.SQLiteDatabase.setVersion(int)' on a null object reference
at com.b.a.a.getWritableDatabase(Unknown Source)
此错误仅在OnePlus设备上发生。是否有一些修复此错误?