我原本配置了全局變量,可是使用SharedPreferences時老是報空指針異常,報錯以下:
FATAL EXCEPTION: main Process: com.XXX.xxx, PID: 19292 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference
後來發現,是沒在清單文件配置Context,也就是下面的第三步。
解決方法:java
*1.寫一個全局的單例模式的MyApplication繼承自Application 覆蓋 onCreate ,在這個方法裏面實例化Application
public class MyApplication extends Application { private static MyApplication instance = null; public static MyApplication getInstance() { return instance; } @Override public void onCreate() { super.onCreate(); instance = this; } }
*2.在清單文件配置全局的Context(必定要在清單文件進行配置,不然代碼會報空)
<application ... ... android:name=".app.MyAppliction" ... ... ></application>
*3.使用的時候根據類的名稱調用Context便可
轉: https://blog.csdn.net/AndroidOliver/article/details/56481828vandroid