Ошибки при инициализации Flurry для Android

Я использую FlurryAnalytics-5.5.0.jar. Когда я инициализирую Flurry, я получаю несколько ошибок:

FlurryAgent.setLogEnabled(true);
FlurryAgent.setLogEvents(true);
FlurryAgent.setLogLevel(android.util.Log.ERROR);
FlurryAgent.init(this, FLURRY_ID);

Ошибки:

Не удалось найти класс com.flurry.sdk.br, на который ссылается метод com.flurry.sdk.bq.a

а также

Возникла проблема с библиотекой сервисов Google Play, которая требуется для поддержки идентификатора рекламы Android. Библиотека Google Play Services должна быть интегрирована в любое приложение, поставляемое в магазине Play Store, которое использует аналитику или рекламу.

Вы могли бы посоветовать?

2 ответа

Эта проблема возникает из-за того, что Сервисы Google Play не настроены. Убедитесь, что в конфигурации вашего проекта не пропущены все зависимости ядра play-services.

В моем случае я решил эту проблему, добавив следующую зависимость в файл конфигурации build.gradle (уровень приложения):

compile 'com.google.android.gms:play-services-base:8.4.0'

Точные строки ошибки logcat:

E/FlurryAgent: Исключение для сервисов GOOGLE PLAY: com.google.android.gms.common.Google Play ServicesUtil

E/FlurryAgent: Существует проблема с библиотекой сервисов Google Play, которая требуется для поддержки идентификатора рекламы Android. Библиотека Google Play Services должна быть интегрирована в любое приложение, поставляемое в магазине Play Store, которое использует аналитику или рекламу.

и класс GooglePlaySercicesUtil находится в библиотеке базы play-services.

Надеюсь это поможет.

Смотрите ссылки это и это для получения дополнительной информации.

Если вы используете Proguard, страница руководства Flurry сообщает, что необходимо добавить следующие строки в ваш файл конфигурации Proguard:

-keep class com.flurry.** { *; }
-dontwarn com.flurry.**
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

# Google Play Services library
-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *

-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

#If you are using the Google Mobile Ads SDK, add the following:
# Preserve GMS ads classes
-keep class com.google.android.gms.ads.** { *;
}
-dontwarn com.google.android.gms.ads.**


#If you are using the InMobi SDK, add the following:
# Preserve InMobi Ads classes
-keep class com.inmobi.** { *;
}
-dontwarn com.inmobi.**
#If you are using the Millennial Media SDK, add the following:
# Preserve Millennial Ads classes
-keep class com.millennialmedia.** { *;
}
-dontwarn com.millennialmedia.**

Также взгляните на этот ответ.

Другие вопросы по тегам