【发布时间】:2021-02-08 19:56:25
【问题描述】:
SessioManager.kt
class SessionManager(context : Context) {
private var PRIVATE_MODE = 0
val PREF_NAME = "LoginLogout"
val KEY_IS_LOGGEDIN = "isLoggedIn"
var pref = context.getSharedPreferences(PREF_NAME, PRIVATE_MODE) //---------error
var pref_editor: SharedPreferences.Editor = pref.edit()
fun setLogin(isLoggedIn: Boolean) { //use to login or logout
pref_editor.putBoolean(KEY_IS_LOGGEDIN, isLoggedIn)
pref_editor.apply()
if(!isLoggedIn) {
pref_editor.clear().apply()
}
}
fun isLoggedIn() : Boolean {
return pref.getBoolean(KEY_IS_LOGGEDIN, false)
}
}
HomeActivity.java
public class HomeActivity extends AppCompatActivity {
private SessionManager sessionManager = new SessionManager(HomeActivity.this); //-------error
private SharedPreferences sharedPreferences = sessionManager.getPref();
原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)'
【问题讨论】:
-
这不会回答这个问题,但它提供了一些关于 NPE 是什么的有用背景。
-
无论如何,想出自己的代码,但要做好自己调试的准备。
-
@clvrmnky 再次抱歉:新手。从 Kotlin、Java 和 android 开始。然后他们应该编写自己的 OWN 代码?
标签: java android-studio kotlin nullpointerexception runtime-error