如何在Facebook Audience Network SDK中使用androidx.recyclerview?

问题描述 投票:0回答:1

我在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-v7support-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,或者这两种方式可以合作吗?

android android-recyclerview facebook-ads-api
1个回答
1
投票

您似乎已经意识到了,但以防万一......这种情况正在发生,因为Facebook SDK依赖于androidx的pre-RecyclerView版本,并且您在应用中使用了androidx版本。

您可以降级自己的依赖关系,以便您的应用和Facebook SDK都使用RecyclerView包中的android.support.v7.widget版本。

或者,您可以使用the Jetifier tool动态重写Facebook SDK的依赖关系,以便它使用RecyclerView包中的androidx.recyclerview.widget版本。

执行第二个选项的最简单方法是按照Migrating to AndroidX文档中列出的步骤操作:

[...]在true文件中为gradle.properties设置以下两个标志:

android.useAndroidX=true
android.enableJetifier=true
© www.soinside.com 2019 - 2024. All rights reserved.