簡體   English   中英

從共享首選項中獲取值時獲取 NullPointerException

[英]Getting NullPointerException while fetching value from shared preference

我正在嘗試獲取存儲在 Shared Preference 中的值,否則返回默認值。 這是我的代碼:

Long count = SharedPref.getSdkInfo(context, "count");

此行在 onCreate 中。

public static Long getSdkInfo(Context context,String key){
    SharedPreferences sharedPref = context.getSharedPreferences(ApiConstant.SDK_INFO, 0);
    Long data = sharedPref.getLong(key, 0L);
    return data;
}

getSdkInfo 方法位於不同的 class 中,稱為 SharedPref。 這里的 key 包含一個字符串值,在共享首選項中保存值時也會使用該值。

這是錯誤:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.viral.snapminttracker/com.viral.snapminttrackersdk.SendDataActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

我嘗試了很多示例,但沒有一個有效並且無法識別錯誤。 請幫忙。 謝謝

不,提供的鏈接只是解釋為什么會發生 nullPointerException,我已經發布了我的代碼,這似乎是正確的,但仍然出現錯誤。 請問一下有沒有錯誤請指出

您的“上下文”變量來自哪里? 確保它不是 null。

如果如您所說,它在您的活動的 OnCreate 方法中,您可以按如下方式更改該行:

Long count = SharedPref.getSdkInfo(this, "count");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM