Как исправить ошибку, вызванную guava: тип программы уже присутствует: com.google.common.util.concurrent.internal.InternalFutures - PullRequest
0 голосов
/ 25 октября 2018

Библиотека 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'", приложение может быть собрано, но при достижении ошибки во время выполнения возникает java.lang.NoClassDefFoundErrorсмысл использования метода Guava: Iterables.find

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Мне пришлось обновить до версии 27.0.1, на момент написания они еще не обновили README с этой новой версией.

implementation 'com.google.guava:guava:27.0.1-android'
0 голосов
/ 25 октября 2018

Поскольку Guava 27.0 , ListenableFuture находится в отдельном артефакте, см. объявление .Вы можете попробовать две вещи (по одной за раз):

  1. Исключить модуль "listenablefuture" (группа "com.google.guava") и построить свой проект снова.
  2. Я не знаюСпецифика AAR, но, возможно, 27.0-android не работает с AAR, поэтому вам следует попробовать 26.0-android.
...