Reputation: 593
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
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
Reputation: 493
Where have you initialized the stringTime variable? The exception is because of uninitialized stringTime variable.
Upvotes: -1