【问题标题】:NullPointerException when calling getSharedPreferences调用 getSharedPreferences 时出现 NullPointerException
【发布时间】:2012-08-29 18:11:24
【问题描述】:

此代码停止工作,我唯一做的就是更改为 Android 4.0.3

public class PrinterFunctions 
{ 
 private static SharedPreferences mSetup;
 public static final String CSDT = "ComDT";

     public static void printFast(){
            final Context myContext = null;
            loadCompany(myContext);
     }     

     public static void loadCompany(Context context){

     mSetup = context.getSharedPreferences(CSDT, Context.MODE_PRIVATE); // NullPointException

         //code here

     }
}

执行上述行时我得到 NullPointerException,这段代码可以正常工作。

感谢您的帮助。 金

【问题讨论】:

  • CSDT 这是什么????我没有在你的课堂上看到 CSDT,所以给它一个名字,或者你可以直接传递字符串......你是否传递了正确的上下文??
  • 也发布您的 logcat 输出。从哪里调用 loadCompany 方法?
  • 您在 SharedPreferences 中是否有 CSDT 键之一?这可能是可能的原因。
  • 能否贴出调用loadCompany()的代码。从你的描述看来,上下文是空的。

标签: android nullpointerexception sharedpreferences


【解决方案1】:

如果您在该特定行上获得 NPE,则可能意味着您传递给 loadCompany()contextnull

【讨论】:

  • 是的,它为空,如果我尝试使用“this”,我会收到一条错误消息,指出我无法在静态上下文中使用它。我编辑问题。
  • 我更改了代码以包含来自调用类的活动的上下文。这行得通。
猜你喜欢
  • 1970-01-01
  • 2013-12-29
  • 2015-02-13
  • 2012-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多