我在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()
是否有一种方法可以“强制” FBAudienceNetwork使用我的androidx.recyclerview
而不是com.android.support:recyclerview-v7
,或者这两种方法可以一起工作?
答案 0 :(得分:1)
您似乎已经知道了,但以防万一...之所以发生这种情况,是因为Facebook SDK依赖于androidx
的{{1}}之前的版本,并且您正在使用{您应用中的{1}}版本。
您可以降级您自己的依赖关系,以便您的应用程序和Facebook SDK都使用RecyclerView
程序包中的androidx
版本。
或者,您可以使用the Jetifier tool动态重写Facebook SDK的依赖关系,以便它使用RecyclerView
程序包中的android.support.v7.widget
版本。
执行第二个选项的最简单方法是遵循Migrating to AndroidX文档中列出的步骤:
[...]在
RecyclerView
文件中将以下两个标志设置为androidx.recyclerview.widget
:true