Подтвердить что ты не робот

Facebook SDK 4.7.0 журналы ClassNotFoundException для AppEventsLogger

Я включил FB SDK в свое приложение для Android через Gradle для входа и отслеживания событий. Вход в систему работает нормально, но logcat продолжает показывать мне исключение каждые 15 секунд после попытки регистрации события приложения:

D/com.facebook.appevents.AppEventsLogger: Got unexpected exception: java.lang.ClassNotFoundException: com.facebook.a.b

Он попадает в Метод readAndClearStore() PersistedEvents

Здесь мой код для регистрации события:

AppEventsLogger logger = AppEventsLogger.newLogger(this);
    Bundle parameters = new Bundle();
    parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "EUR");
    parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
    parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, id);

    logger.logEvent(AppEventsConstants.EVENT_NAME_VIEWED_CONTENT,
            1.99,
            parameters);

Я имею в виду, что com.facebook.a.b выглядит для меня проблемой proguard. Но в документах FB SDK они четко заявляют, что вам не нужно вводить какие-либо правила proguard для его работы. Эта ошибка также показывает, когда я не уменьшаю мое приложение, а также загружаю sdk из github и включаю его в качестве модуля.

4b9b3361

Ответ 1

У меня есть аналогичная проблема несколько дней назад с регистратором в Facebook SDK (v4.11.0):

D/com.facebook.a.a(PID): Got unexpected exception: java.io.WriteAbortedException: Read an exception; java.io.NotSerializableException: org.json.JSONObject

И в своей документации они сказали следующее:

Вам не нужно выполнять какие-либо дополнительные действия для использования ProGuard для Android Android SDK. Инструкции по Proguard см. В разделе "Сайт проекта Android", "Запуск ProGuard".

После просмотра того, что заставило не регистрировать какие-либо из моих событий в среде релиза, я добавил следующее правило в свой файл proguard и затем волшебным образом начал работать хорошо:

-keep class com.facebook.** { *; }

Мы уже открываем билет для команды разработчиков facebook, чтобы получить дополнительную информацию об этом. https://developers.facebook.com/bugs/250752828645777/

Ответ 2

Использовать в gradle вместо sdk: 4.11.0:

compile('com.facebook.android:facebook-android-sdk:3.23.0') {
    exclude module: 'bolts-android'
}

Я также не могу войти в fb sdk: 4.11.0, так как эта версия fb sdk обеспечивает исключение класса Facebook. С более высокой версией fb sdk новые классы заменяют старые.

Даже в новой версии 23 вверх, ActionBaractivity лишается, поэтому необходимо использовать AppCompatActivity.