【问题标题】:TinyDB error putint null object reference androidTinyDB错误putint空对象引用android
【发布时间】:2023-03-04 08:45:02
【问题描述】:

TinyDb class is here

我只是默认使用它,例如:TinyDB tinyDB = new TinyDB(MyActivity.this);tinyDB.putInt("hadi" , 10);

但我遇到了一个我无法理解的错误。它说 tinyDB 是空对象引用。你可以看到下面的错误:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.ahmadi.TinyDB.TinyDB.putInt(java.lang.String, int)' on a null object reference

【问题讨论】:

    标签: java android object reference tinydb


    【解决方案1】:

    您必须创建 TinyDB 类的对象,例如:-

    TinyDB tinyDB = new TinyDB();
    

    【讨论】:

    • 不工作。错误:原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)'
    • tinydb 类中的错误行:第 51 行 .第 51 行代码:“preferences = PreferenceManager.getDefaultSharedPreferences(appContext);”
    • 现在你得到了 N.P.E.在 SharedPreference ..发布共享偏好代码
    • TinyDB tinyDB = new TinyDB(Myactivity.this);
    • 我只是使用这个代码。 " tinyDB.putInt("hadi" , 10); "
    【解决方案2】:

    您应该在使用之前正确启动您的 TinyDB

    例如Activity:

    TinyDB tinyDB = new TinyDB(this); 
    tinyDB.putInt("hadi" , 10);
    

    Fragment:

    TinyDB tinyDB = new TinyDB(getContext()); 
    tinyDB.putInt("hadi" , 10);
    

    TinyDB 只是 SharedPreferences 的一个简单包装器,因此您必须为其提供有效的 Context 以启动 SharedPreferences

    【讨论】:

    • 不客气!只要记住将正确的上下文传递给小数据库!否则,当 Activity 或 Fragment 被销毁时,您的应用程序可能会崩溃..
    • 罗杰那。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 2017-01-26
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多