4

AAR 库已经使用 com.google.guava。

如果应用在其 build.gradle 中包含以下内容:

api 'com.google.guava:guava:27.0-android'

构建应用程序会生成以下错误:

Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: ...
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: com.google.common.util.concurrent.internal.InternalFutures

如果我不包含“api 'com.google.guava:guava:27.0-android'”,则可以构建应用程序,但是当它到达使用 Guava 方法的点时会出现 java.lang.NoClassDefFoundError 的运行时错误:可迭代的.find

4

2 回答 2

9

我必须更新到版本 27.0.1,在撰写本文时,他们还没有用这个新版本更新自述文件。

implementation 'com.google.guava:guava:27.0.1-android'
于 2018-11-25T16:16:09.583 回答
5

由于 Guava 27.0位于ListenableFuture单独的工件中,请参阅公告。您可以尝试两件事(一次一件):

  1. 排除"listenablefuture"模块(组"com.google.guava")并再次构建您的项目。
  2. 我不知道 AAR 的细节,但它可能27.0-android不适用于 AAR,所以你应该尝试一下26.0-android
于 2018-10-25T07:23:32.863 回答