Ошибка сервера CI: не удалось найти метод google () для аргументов [] в контейнере хранилища - PullRequest
0 голосов
/ 26 апреля 2018

Мне известно, что эта ошибка может быть вызвана использованием старых версий Gradle и плагина Android Gradle, но в этом случае эта ошибка сборки происходит только на удаленном облачном CI-сервере (Nevercode), а не локально (либо в Android Studio или командной строке). В проекте используются последние версии обоих. Похоже, это причина, отличная от упомянутой в других вопросах об этой ошибке.

gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

root build.gradle:

buildscript {

    repositories {
        jcenter()
        google()  // <-- Error points to (line 7) here
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }

}

allprojects {
    repositories {
        jcenter()
        google()
        flatDir {
            dirs 'libs'
        }
    }
}

Ошибка сборки:

Could not find method google() for arguments [] on repository container.
/build.gradle' line: 7

Gradle не может найти определение google (), но это должно работать с Gradle 4.0+ и плагином Android Gradle v3.0 + в соответствии с этим Ошибка: (6, 0) Метод Gradle DSL не найден: 'google ( ) '

Переключение google () на maven {url 'https://maven.google.com'} не решает проблему.

У меня есть другие проекты, которые прекрасно работают с этим провайдером CI, используя те же конфигурации. Проект с этой проблемой создается сервером CI на новой виртуальной машине из источника репозитория, поэтому я не ожидаю, что какие-либо проблемы с кэшированным состоянием вызовут это. Любопытно, что каждый раз он работает нормально, но не на CI-сервере.

1 Ответ

0 голосов
/ 26 апреля 2018

Причиной этого было то, что в модуле «приложение» проекта (на один уровень ниже корня проекта) была вторая копия gradle и оболочки gradle, а оболочка gradle была настроена на старую версию v2.2 .

Локально это не проблема, но по любой причине Nevercode CI использует этот Gradle v2.2 из модуля приложения для сборок, а затем завершается неудачей, поскольку версия слишком устарела.

Если вы видите этот сценарий, проверьте свои подмодули на наличие случайных копий старых версий Gradle ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...