Я пытаюсь интегрировать Firebase Analytics. Однако проблема заключается в том, что каждый раз, когда я пытаюсь записать событие, ни о каком событии не сообщается (даже после включения режима отладки через adb для анализа firebase). Это происходит как на эмуляторе, так и на моем персональном устройстве. Я вижу сообщение об ошибке входа в систему logcat всякий раз, когда я регистрирую событие
Исключение задачи в рабочем потоке: java.lang.NullPointerException:
Попытка вызвать виртуальный метод 'java.lang.String
com.google.firebase.iid.FirebaseInstanceId.getId () 'для нулевого объекта
ссылка:
com.google.android.gms.internal.measurement.zzfc.zzgl (Неизвестно
Источник: 32)
Моя конфигурация gradle следующая
Верхний уровень build.gradle
// Файл сборки верхнего уровня, в который можно добавить параметры конфигурации, общие для всех подпроектов / модулей.
buildscript {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0-beta02'
classpath 'com.google.gms:google-services:4.0.1'
classpath 'io.fabric.tools:gradle:1.+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.gradle проекта
dependencies {
implementation 'com.google.firebase:firebase-config:16.0.0'
implementation 'com.google.firebase:firebase-core:16.0.0'
implementation 'com.android.support:recyclerview-v7:27.1.1'
debugImplementation 'com.facebook.stetho:stetho:1.5.0'
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "android.arch.lifecycle:common-java8:1.1.1"
implementation "android.arch.persistence.room:runtime:1.1.1"
implementation "com.google.android.gms:play-services-vision:15.0.2"
implementation 'joda-time:joda-time:2.10'
implementation('com.crashlytics.sdk.android:crashlytics:2.9.0@aar') {
transitive = true;
}
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
// Paging
implementation "android.arch.paging:runtime:1.0.0"
// Test helpers for LiveData
testImplementation "android.arch.core:core-testing:1.1.1"
// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.1.1"
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
apply plugin: 'com.google.gms.google-services'
AndroidManifest
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
android:enabled="true"
android:exported="false"/>
<receiver
android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.INSTALL_PACKAGES">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service
android:name="com.google.android.gms.measurement.AppMeasurementService"
android:enabled="true"
android:exported="false" />
<service
android:name="com.google.android.gms.measurement.AppMeasurementJobService"
android:enabled="true"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" />
Класс применения
@Override
public void onCreate() {
super.onCreate();
FirebaseApp.initializeApp(this);
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
mFirebaseAnalytics.setAnalyticsCollectionEnabled(true);
mFirebaseAnalytics.setUserId(Utils.fetchDeviceId(this));
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "Test");
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "Test");
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Test");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
}