NullPointerException при вызове Firebase setUserProperty

Я пытаюсь собрать информацию о том, какие данные пользователь вводит с помощью Google Firebase, но я продолжаю получать исключение нулевого указателя, в частности

java.lang.NullPointerException: попытка вызвать виртуальный метод «void com.google.firebase.analytics.FirebaseAnalytics.setUserProperty(java.lang.String, java.lang.String)» для нулевой ссылки на объект

Это код:

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);
    }
}

Который вызывается в другом файле как таковой:

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

person Conner Leverett    schedule 02.11.2016    source источник


Ответы (2)


Если вы попытаетесь создать экземпляр Activity обычными средствами (Analytics analytics = new Analytics();), метод onCreate() НЕ БУДЕТ вызываться.

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);
    }
}

И вызовите его из другой деятельности

Analytics analytics = new Analytics(Activity.this);
analytics.timer(10);
person Ravi    schedule 02.11.2016
comment
Спасибо за ответ! К сожалению, файл, в котором я вызываю Analytics analytics = new Analytics();, является фрагментом, поэтому ключевое слово «Активность» не работает. Есть ли обходной путь для этого? - person Conner Leverett; 02.11.2016
comment
вы можете использовать getActivity() для фрагмента - person Ravi; 03.11.2016

Где вы инициализировали переменную stringTime? Исключение связано с неинициализированной переменной stringTime.

person Shree Naath    schedule 02.11.2016