Как использовать androidx.recyclerview с Facebook Audience Network SDK? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть список элементов в RecyclerView, чтобы упростить жизнь. Я использую androidx.recyclerview:recyclerview:1.0.0.

Я пытаюсь загрузить рекламу из Facebook, как описано здесь https://developers.facebook.com/docs/audience-network/android (онииспользуя com.android.support:recyclerview-v7:25.3.1).

Я уже добавил библиотеку поддержки recyclerview-v7 и support-v4.Но FBAudienceNetwork по-прежнему выдает мне эту ошибку:

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.widget.RecyclerView"

...

Dependency not found: android.support.v4.content.LocalBroadcastManager
Dependency not found: android.support.v7.widget.RecyclerView

...

 java.lang.RuntimeException: Facebook Audience Network SDK doesn't have all required classes. Please, check LogCat output for tag FBAudienceNetwork. See more: https://developers.facebook.com/docs/audience-network/android/ . You can change Integration Error mode by setting AdSettings.setIntegrationErrorMode()

Есть ли способ «заставить» FBAudienceNetwork использовать мой androidx.recyclerview вместо com.android.support:recyclerview-v7 или есть способ, которым эти двое могут работать вместе?

1 Ответ

1 голос
/ 25 марта 2019

Кажется, что вы уже знаете, но на всякий случай ... Это происходит потому, что SDK Facebook зависит от предварительной androidx версии RecyclerView, а вы используете androidx версию вваше приложение.

Вы можете понизить свою собственную зависимость, чтобы и ваше приложение, и Facebook SDK использовали версию RecyclerView, которая находится в пакете android.support.v7.widget.

Или,Вы можете использовать инструмент Jetifier для динамического переписывания зависимости Facebook SDK, чтобы он использовал версию RecyclerView, которая находится в пакете androidx.recyclerview.widget.

Самый простой способсделать второй вариант - выполнить действия, перечисленные в документе Миграция на AndroidX :

[...] установите следующие два флага на true в вашем gradle.properties файл:

android.useAndroidX=true
android.enableJetifier=true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...