如何在 Facebook Audience Network SDK 中使用 androidx.recyclerview?
How to use androidx.recyclerview with Facebook Audience Network SDK?
我在 RecyclerView 中有一个元素列表,为了让生活更轻松,我正在使用 androidx.recyclerview:recyclerview:1.0.0
。
我正在尝试按照此处 https://developers.facebook.com/docs/audience-network/android 所述从 Facebook 加载广告(他们正在使用 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()
有没有办法 "force" FBAudienceNetwork 使用我的 androidx.recyclerview
而不是 com.android.support:recyclerview-v7
或者这两者可以一起工作?
看来您已经知道了,但以防万一...发生这种情况是因为 Facebook SDK 依赖于 RecyclerView
之前的 androidx
版本,并且您正在使用您应用中的 androidx
版本。
您可以降级您自己的依赖项,这样您的应用和 Facebook SDK 都使用 android.support.v7.widget
包中的 RecyclerView
版本。
或者,您可以使用 the Jetifier tool 动态重写 Facebook SDK 的依赖项,以便它使用 androidx.recyclerview.widget
包中的 RecyclerView
版本。
执行第二个选项的最简单方法是按照 Migrating to AndroidX 文档中列出的步骤进行操作:
[...] set the following two flags to true
in your gradle.properties
file:
android.useAndroidX=true
android.enableJetifier=true
我在 RecyclerView 中有一个元素列表,为了让生活更轻松,我正在使用 androidx.recyclerview:recyclerview:1.0.0
。
我正在尝试按照此处 https://developers.facebook.com/docs/audience-network/android 所述从 Facebook 加载广告(他们正在使用 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()
有没有办法 "force" FBAudienceNetwork 使用我的 androidx.recyclerview
而不是 com.android.support:recyclerview-v7
或者这两者可以一起工作?
看来您已经知道了,但以防万一...发生这种情况是因为 Facebook SDK 依赖于 RecyclerView
之前的 androidx
版本,并且您正在使用您应用中的 androidx
版本。
您可以降级您自己的依赖项,这样您的应用和 Facebook SDK 都使用 android.support.v7.widget
包中的 RecyclerView
版本。
或者,您可以使用 the Jetifier tool 动态重写 Facebook SDK 的依赖项,以便它使用 androidx.recyclerview.widget
包中的 RecyclerView
版本。
执行第二个选项的最简单方法是按照 Migrating to AndroidX 文档中列出的步骤进行操作:
[...] set the following two flags to
true
in yourgradle.properties
file:android.useAndroidX=true android.enableJetifier=true