【问题标题】:Gradle exclude classes from aarGradle 从 aar 中排除类
【发布时间】:2020-11-25 17:59:53
【问题描述】:

我在我的依赖项中使用 lib Gson,并且我导入了一个 .aar,其中包含从 Gson 导入到项目中的一些类。 当我构建我的项目时,我不断得到重复的类,bcz 它依赖于我的依赖和 aar 类。

如何从 aar 中排除 gson 类?

我一直在尝试:

  • 排除组:我认为这不起作用,因为它不是来自 aar 的依赖项,而是内部的类。
  • 传递真,原因与之前相同

我可以吗?还是我应该得到其他 .aar 与 gson 作为依赖?

【问题讨论】:

  • 您是将gson 添加为gradle 依赖项,还是将源文件从gson 复制到您的项目中?如果您正在执行后者,请删除这些文件并添加 gson 作为依赖项。只要您在所有库中使用相同的版本,就不会有问题。如果您将它们导出为 aar 并再次包含它们,请确保将库的所需依赖项添加到您的根项目中。如果还有其他问题,请向我们展示您的 gradle 依赖项
  • 从 gson 复制源文件,我无法将其添加为依赖项,因为我无法控制它,所以我必须以这种方式使用它。带有 gson 源代码的 aar 和我使用 gson 依赖项的项目。
  • 写的有点混乱...你能列出有问题的依赖项并列出如何将它们添加到项目中吗? (gradle,aar,源代码副本)。此外,如果您有任何 aar,请将其提取并检查是否有任何 gson 命名空间在其中,或者它们是否在 pom 文件中声明为依赖项
  • 如果我阅读正确并且 gson 被打包到 aar 中并且您无权访问 aar 的源代码,则您必须以某种方式找到删除 gson 部分的方法在 aar 中,提供您自己的 gson 作为依赖项,并希望 aar 与该版本一起使用
  • 这就是我在问我是否可以做到:)。我不能在里面改变 aar,所以我必须在 compile(?) 上从 aar 中排除类并使用我的

标签: android gradle build.gradle


【解决方案1】:

通常 .aar 包含 .pom 文件,其中包含“aar 库”使用的所有依赖项。

如果您正在创建自己的库并在另一个应用程序中使用它,请参考下面的链接。 https://medium.com/swlh/android-library-kotlin-creation-access-deploy-problems-fixes-everything-you-want-to-c1a1701f0e8f

或者

试试下面这个

implementation(name: '××××××× aar package', ext: 'aar') {
    exclude module: 'gson'
}

如果有帮助请告诉我

【讨论】:

  • 对不起,gson 不是 pom 依赖,而是源代码复制
猜你喜欢
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
  • 2022-10-14
  • 2021-08-28
  • 1970-01-01
  • 2015-04-16
  • 1970-01-01
  • 2021-12-23
相关资源
最近更新 更多