0
  • 最佳答案
    • 我前段时间也经常遇到空指针异常,不知道怎么办。现在觉得,挺好解决的


    • 空指针,空指针,就是没有值


    • 空指针,一般都是因为等号右边为空值所致,那你就从右边开始入手


    • 我的思路,先看一下右边是否已经初始化,其次再考虑一下是否真的获取了该值



    1342082010843308032  评论     打赏       Cstri
    • 断桥  回复 @Cstri
      谢谢老哥,弄好了
      断桥 2021-03-01 16:53   回复 1338086534452207616
    • 拉大锯  回复 @Cstri
      对,一个是创建时机,一个是使用时机。从这两个角度入手即可。
      拉大锯 2021-03-01 17:40   回复 1153952789488054272
  • 80行空指针。这个东西为什么会空?不重要。

    你现在阶段,重要是看懂报错信息。定位错误的代码在哪里。


    1139423796017500160  评论     打赏       断点-含光君
    • public class SpUtils {
      
          private SharedPreferences sp;
          private SharedPreferences.Editor editor;
      
          /**
           * key - values 存储方式
           * 它的存储路径:data/data/packageName/shared_prefs/sp_name.xml
           * <p>
           * File存储:/sdcard/ 读写方式不一样
           * 数据库:LitePal
           * get/post:数据的读写
           */
      
          private volatile static SpUtils mInstance = null;
      
          private SpUtils() {
      
          }
      
          public static SpUtils getInstance() {
              if (mInstance == null) {
                  synchronized (SpUtils.class) {
                      if (mInstance == null) {
                          mInstance = new SpUtils();
                      }
                  }
              }
              return mInstance;
          }
      
          public void initSp(Context mContext) {
      
              /**
               * MODE_PRIVATE:只限于本应用读写
               * MODE_WORLD_READABLE:支持其他应用读,但是不能写
               * MODE_WORLD_WRITEABLE:其他应用可以写
               */
              sp = mContext.getSharedPreferences(BuildConfig.SP_NAME, Context.MODE_PRIVATE);
              editor = sp.edit();
          }
      
          public void putInt(String key, int values) {
              editor.putInt(key, values);
              editor.commit();
          }
      
          public int getInt(String key, int defValues) {
              return sp.getInt(key, defValues);
          }
      
          public void putString(String key, String values) {
              editor.putString(key, values);
              editor.commit();
          }
      
          public String getString(String key, String defValues) {
              return sp.getString(key, defValues);
          }
      
          public void putBoolean(String key, boolean values) {
              editor.putBoolean(key, values);
              editor.commit();
          }
      
          public boolean getBoolean(String key, boolean defValues) {
              return sp.getBoolean(key, defValues);
          }
      
          public void deleteKey(String key) {
              editor.remove(key);
              editor.commit();
          }
      
      }
      


      1338086534452207616  评论     打赏       断桥
      • 拉大锯  回复 @断桥
        你没有initSp
        拉大锯 2021-03-01 11:07   回复 1153952789488054272
      • 断桥  回复 @拉大锯
        改好了,谢谢老师
        断桥 2021-03-01 16:52   回复 1338086534452207616
    • 空指针异常,在你的代码SpUtils.java第80行。


      https://www.sunofbeach.net/a/1200314266318655488

      1153952789488054272  评论     打赏       拉大锯
      • 断桥  回复 @拉大锯
        老师,我的SpUtils就是直接复制的源码,我把代码贴在下面了能麻烦您帮我看看问题在哪吗
        断桥 2021-02-28 22:40   回复 1338086534452207616
    相关问题
    deanhu · AOSP
    2024-04-25 21:53 1 10
    幻影~ · 提问
    2024-04-13 20:13 10 2
    幻影~ · 找工作
    2024-04-07 10:44 16 2
    幻影~ · 问题
    2024-03-31 17:20 7 2
    TONYGFX · AOSP
    2024-03-28 17:11 4 2