机器人有错误“尝试调用接口方法的空对象引用” .featFCM

问题描述:

我有问题 我想控制FCM声音按钮布尔 我的布尔值被保存共享偏好 我做初始化偏偏这个错误机器人有错误“尝试调用接口方法的空对象引用” .featFCM

my error image

这是我的按钮布尔保存源

private static SharedPreferences mPrefs; 
     private static SharedPreferences.Editor mPrefsEditor; 
     private static final String noti = "pref_key_noti_onoff"; 
    public static void initPrefs(Context context) { 
      if(mPrefs == null){ 
       mPrefs = context.getSharedPreferences(context.getPackageName() + "_preferences", 0); 
       mPrefsEditor = mPrefs.edit(); 
      } 
     } 
     public static boolean getSettingnoti() { 
      return mPrefs.getBoolean(noti,true); 
     } 
    public static void setSettingnoti(boolean onoff) { 
     mPrefsEditor = mPrefs.edit(); 
     mPrefsEditor.putBoolean(noti,onoff); 
     mPrefsEditor.commit(); 

    } 

这是我收到的FCM源

public void onMessageReceived(RemoteMessage remoteMessage) { 
      if (DataSaver.getSettingnoti()){} 
      else{ 
       mPrefsEditor = mPrefs.edit(); 
       mPrefsEditor.putBoolean(noti,true); 
       mPrefsEditor.commit(); 
      } 

      if (DataSaver.getSettingnoti() == false) { 
       Log.d(TAG, "onMessageReceived: "); 
      } else { 
       Integer.parseInt(DataSaver.getSettingsttime()); 
       Integer.parseInt(DataSaver.getSettingedtime()); 

       Log.d(TAG, "onMessageReceived:" + Integer.parseInt(DataSaver.getSettingsttime()) + Integer.parseInt(DataSaver.getSettingedtime())); 

       sendPushNotification(remoteMessage.getData().get("message")); 
       set_alarm_badge(); 
      } 
     } 
+0

哎呀不健全的,我不想recived FCM –

您需要修改此代码并在使用它之前对对象执行空检查。

public static boolean getSettingnoti() { 
      if(mPrefs != null) 
       return mPrefs.getBoolean(noti,true); 
      /* put some log here */ 
      return false; 
     } 
+0

THX兄弟那是我的问题 –

+0

可以请你给予好评我的答案如果它解决您的问题。 –

+0

当然我会做upvote –