首页 > 解决方案 > 如何解决 Android 支持库和 AndroidX 之间的冲突?

问题描述

我是一个统一开发人员,为了解决冲突尝试将我的项目导出到 android studio。

我同时使用 firebase 和 vungle 库。firebase 依赖于 android-core 而 vungle 依赖于 support-compat。如果我同时编译它们,我会收到编译错误:

Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (:androidx.core.core-1.0.0:) and support-compat-27.1.1.jar (support-compat-27.1.1.jar)

如果我评论其中一个,我会在游戏开始时收到运行时错误。我真的能做什么?

谢谢

标签: androidandroid-studioandroidx

解决方案


Vungle SDK 从 6.5 开始支持 androidx,现在处于早期访问阶段。如果您想使用 6.4.11,最好使用 Android Studio Gradle 工具进行迁移,正如其他答案所述。然后应该使用 SDK 6.4.11 修复该问题。但万一有人不想导出 Android Studio 项目,但仍想使用 SDK 6.4.11。您可以按照此处的文档在没有 Android Studio 的情况下自行迁移 Vungle SDK。你需要做的是:

  1. 下载jetifier并解压
  2. 使用终端和 cd 到文件夹(mac)
  3. 下载SDK 6.4.11并将 SDK 6.4.11 jar/aar 拖到文件夹 jetifier-standalone/bin

最后的步骤运行以下命令:

./jetifier-standalone -i publisher-sdk-android-6.4.11.aar -o publisher-sdk-android-6.4.11-androidx.aar

或者

./jetifier-standalone -i vungle-android-sdk-6.4.11.jar -o vungle-android-sdk-6.4.11-androidx.jar
./jetifier-standalone -i vng-moat-mobile-app-kit-2.5.1.jar -o vng-moat-mobile-app-kit-2.5.1-androidx.jar

如果您使用jar文件进行集成,请确保转换两个库。

请使用JD-GUI检查 jar/aar 并确保迁移已完成。我遇到了一次失败的迁移,没有任何错误。所以检查它会很棒。您可以检查以下文件: 在此处输入图像描述 在此处输入图像描述

最后,如果您不想自己做,请随时从我的保管箱下载迁移后的aar文件。我相信它会在一段时间内可用。如果有人需要罐子,请告诉我。


推荐阅读