ошибка gradle - com.google.common.collect.ImmutableSet.toImmutableSet () Ljava / util / stream / Collector - PullRequest
0 голосов
/ 03 декабря 2018

Я уже упоминал об этом пару раз, но пока не нашел решения - после обновления Gradle до 4.10.2 и плагина Android gradle до 3.2.1 у меня возникло много трудностей при попытке построить Androidприложение.Похоже, что это несовместимость между плагинами, особенно в отношении используемой версии Guava.Я считаю, что это один из плагинов AWS, который я использую, который вызывает проблему, но я использую последнюю версию, и я не могу найти какой-либо простой способ выделить скрипт gradle, которому нужен плагин AWS, и тот, который нуждается вПлагин для Android.Есть ли какой-то способ сказать Gradle, какую версию Guava использовать при загрузке плагина AWS?Я пробовал это, но безрезультатно:

buildscript {
  repositories {
    mavenCentral()
    maven { url "https://plugins.gradle.org/m2/" }
  }
  dependencies {
    classpath "com.google.guava:guava:27.0.1-android"
    classpath "jp.classmethod.aws:gradle-aws-plugin:0.38"
  }
}

Простое удаление этой последней записи пути к классу решает проблему, но мне это нужно для задач AWS.

Странная вещь после того, как яполучить эту ошибку и запустить gradle снова я получаю совершенно другую ошибку: «Не удалось инициализировать класс com.android.build.gradle.internal.ide.ModelBuilder».Похоже, что это не поможет Google.

FWIW трассировка стека:

Caused by: java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.toImmutableSet()Ljava/util/stream/Collector;
        at com.android.build.gradle.internal.ide.DependenciesImpl.<init>(DependenciesImpl.java:97)
        at com.android.build.gradle.internal.ide.ModelBuilder.<clinit>(ModelBuilder.java:134)
        at com.android.build.gradle.BasePlugin.registerModels(BasePlugin.java:612)
        at com.android.build.gradle.BasePlugin.configureExtension(BasePlugin.java:576)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
        at com.android.build.gradle.BasePlugin.apply(BasePlugin.java:290)
        at com.android.build.gradle.AbstractAppPlugin.apply(AbstractAppPlugin.java:122)
        at com.android.build.gradle.AppPlugin.apply(AppPlugin.java:43)
        at com.android.build.gradle.AppPlugin.apply(AppPlugin.java:35)
        at org.gradle.api.internal.plugins.ImperativeOnlyPluginTarget.applyImperative(ImperativeOnlyPluginTarget.java:42)
 ...

1 Ответ

0 голосов
/ 04 декабря 2018

Наконец-то все заработало, добавив это в корень build.gradle:

configurations.all {
  resolutionStrategy {
    force "com.google.guava:guava:23.0"
    force "commons-logging:commons-logging:1.2"
    force "commons-io:commons-io:2.4"
  }
}

После разрешения первого конфликта с гуавой осталось еще 2, отсюда и необходимые дополнительные строки.

Кажется, приложение работает и работает нормально, а команды AWS выполняются нормально.

...