Conner Leverett
Conner Leverett

Reputation: 593

NullPointerException when calling Firebase setUserProperty

I'm trying to collect information on what data user's are entering using Google Firebase but I keep receiving a null pointer exception, specifically

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.firebase.analytics.FirebaseAnalytics.setUserProperty(java.lang.String, java.lang.String)' on a null object reference

This is the code:

public class Analytics extends Activity {
    FirebaseAnalytics analytics;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        analytics = FirebaseAnalytics.getInstance(Analytics.this);
    }

    public void timer(int time) {
        String stringTime = String.valueOf(time);
        analytics.setUserProperty("Timeset", stringTime);
    }
}

Which is called in another file as such:

Analytics analytics = new Analytics();
analytics.timer(10);

Upvotes: 0

Views: 1640

Answers (2)

Ravi
Ravi

Reputation: 35559

If you try to instantiate that Activity by normal means (Analytics analytics = new Analytics();) the onCreate() method WILL NOT be called.

public class Analytics {
    FirebaseAnalytics analytics;

    public Analytics(Context context)
    {
        analytics = FirebaseAnalytics.getInstance(Analytics.this);
    }


    public void timer(int time) {
        String stringTime = String.valueOf(time);
        analytics.setUserProperty("Timeset", stringTime);
    }
}

And call it from your other activity

Analytics analytics = new Analytics(Activity.this);
analytics.timer(10);

Upvotes: 6

Shree Naath
Shree Naath

Reputation: 493

Where have you initialized the stringTime variable? The exception is because of uninitialized stringTime variable.

Upvotes: -1

Related Questions