it-swarm.com.ru

Сбой сборки Gradle после обновления до 3.0

Я недавно обновил версию моего проекта gradle с 2.14.1 до 3.0. С тех пор сборка gradle каждый раз завершается с ошибкой: 

Ошибка: Причина: org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection не может быть приведен к org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection Возможные причины этой неожиданной ошибки:

  • Кэш зависимостей Gradle может быть поврежден (это иногда происходит после истечения времени ожидания сетевого подключения.) Повторная загрузка зависимостей и синхронизация проекта (требуется сеть)
  • Состояние процесса сборки Gradle (демон) может быть повреждено. Остановка всех демонов Gradle может решить эту проблему . Остановить процессы сборки Gradle (требуется перезагрузка)
  • Ваш проект может использовать сторонний плагин, который не совместим с другими плагинами в проекте или версией Gradle, запрошенной проектом.
В случае поврежденных процессов Gradle вы также можете попробовать закрыть IDE и затем убить все процессы Java. 

Я искал в Google и нашел некоторые решения, такие как это один, но ничего не работает. Кто-нибудь знает как это исправить?

66
Drilon Blakqori

Обновите инструменты сборки Gradle до последней версии.

Один из простых способов сделать это - добавить последнюю версию инструментов сборки в качестве зависимости в ваш файл build.gradle, например:

dependencies {
    classpath 'com.Android.tools.build:gradle:2.2.0-beta1'
}

Затем вы можете запустить gradle tasks и Gradle загрузит все, что вам нужно.

После выпуска стабильной версии Android Studio 2.2 19 сентября 2016 г. последняя версия инструментов сборки - 2.2.0. Так что вы можете это исправить:

dependencies {
    classpath 'com.Android.tools.build:gradle:2.2.0'
}

Поскольку стабильная версия Android Studio 2.4 еще не готова к выпуску (4 мая 2017 года), последняя стабильная версия инструментов сборки - 2.3.1.

dependencies {
    classpath 'com.Android.tools.build:gradle:2.3.1'
}

Если вы обновите эту версию инструментов сборки до 2.3. *, Вам также следует обновить версию оболочки Gradle до 3.3 в файле /yourProjectRoot/gradle/wrapper/gradle-wrapper.properties. (я знаю, что это не совпадает с вопросом Gradle build failing after update to 3.0, но я настоятельно рекомендую вам использовать последний инструмент сборки, как рекомендовано Google)

Кстати: версия 2.3.1 инструмента сборки существует только в jCenter, а не в MavenCentral, поэтому, если вы столкнетесь с ошибкой, указанной ниже, при запуске командной строки gradlew в терминале 

Could not find com.Android.tools.build:gradle:2.3.1.
 Searched in the following locations:
     https://repo1.maven.org/maven2/com/Android/tools/build/gradle/2.3.1/gradle-2.3.1.pom
     https://repo1.maven.org/maven2/com/Android/tools/build/gradle/2.3.1/gradle-2.3.1.jar

просто замените mavenCentral () на jcenter () как 

 repositories {
    jcenter()
    //mavenCentral()
}
79
ending0421

Для последнего обновления Android Studio 3.0

В gradle-wrapper.properties (Имя файла) измените URL-адрес distributionUrl на следующий:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip

25
Dhaval Jardosh

Если вы используете плагин Gradle 2.1.3, Это легко решить:

обновите плагин Gradle до версии 2.2.0-бета1

Примечания: это бета-версия, возможно, вы можете получить другие проблемы.

https://discuss.gradle.org/t/classcastexception-in-gradle-nightly-3-0-20160609/17979

Удачного кодирования :)

8
Leekwok Hsiang

Хорошо, я получил это работает. Для тех, кто сталкивается с той же проблемой, как это работает для меня следующим образом: 

  1. Перейдите в вашу внешнюю папку .gradle (для меня это был C:\Users\drilon.gradle). Внутри кэшей и папки демона удалите все папки версий (они выглядят как «2.14.1» или «3.0»). Также зайдите в обертку -> Dists -> удалить все там.
  2. Внутри корневого каталога вашего проекта (для меня это был C:\Users\drilon\AndroidStudioProjects\PorjectName) перейдите в папку .gradle и удалите там все. 
  3. Перестройте проект 

Правка:
Оказывается, это решение устанавливало версию gradle обратно на 2.14.1. Решение end0421 является рабочим.

4
Drilon Blakqori

если ваша версия Gradle: 3.0.1, используйте приведенный ниже код в вашем gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip

если 3.1.2, используйте приведенный ниже код в вашем gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.Zip

2
prasad reddy
    After 1 hour R&D Not Solution as worked for me...

    But still i have solution follow this its work 100

    step 1: upgrade your build.gradle(Project:<your project name>)
    Example :  classpath 'com.Android.tools.build:gradle:2.1.3' // old gradle file
               classpath 'com.Android.tools.build:gradle:2.3.1' // upgraded file 

                                OR
               classpath 'com.Android.tools.build:gradle:3.1.0'

    Step 2 : Upgrade compileSdkVersion buildToolsVersion 
    Example : compileSdkVersion 23    buildToolsVersion "23.0.3 // old api's
              compileSdkVersion 25    buildToolsVersion "25.0.2" // upgraded api's

   Step 3:  upgrade gradle-wrapper.properties 
   Example : distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip // old or any version
            distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip // new or any version

Шаг 4: наконец-то перейдем к сборке> перестроить проект ...

Тем не менее вы сталкиваетесь с какой-то проблемой совершить или отправить мне ....

...... Конец @Ambilpura

0
Ambilpura Sunil Kumar

Просто удалите все внутри папки Gradle в основной папке проекта и перестройте проект Это начнет работать.

0
Sapna Panda

Для последнего обновления Android Studio 3.3.1 работает код ниже.

1) gradle-wrapper.properties добавить строку ниже.

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

2) build.gradle in уровень проекта добавить ниже путь к классу 

зависимости { classpath 'com.Android.tools.build:gradle:3.1.0'

}
0
satyawan hajare

простой ответ попробуйте это ...

перейдите к build.gradle (PROJECT) и проверьте версию Gradle, как показано ниже

'com.Android.tools.build:gradle:2.1.3' или 3.0 или 3.1 или xx.xx

теперь откройте gradle-wrapper.properties, чтобы увидеть эту строку кода, если версия Gradle 2.x, этот код ниже ...

distributionUrl = https: //services.gradle.org/distributions/gradle-2.14.1-all.Zip

gradle-2.14.1-all.Zip строка кода должна совпадать с версией gradle 

пример:

пример: у меня 2.x так что ... classpath 'com.Android.tools.build:gradle:2.1.3' в build.gradle так 

distributionUrl = https: //services.gradle.org/distributions/gradle-2.14.1-all.Zipin gradle-wrapper.properties.

если версия Gradle 3.x, тогда classpath 'com.Android.tools.build:gradle:3.1.0' в build.gradle, тогда 

distributionUrl = https: //services.gradle.org/distributions/gradle-3.14.1-all.Zipin gradle-wrapper.properties.

проверить это будет работать

0
Ambilpura Sunil Kumar

если Android Studio Android Studio 3.0 ниже код работает.

gradle-wrapper.properties добавить ниже строки.

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip

если Android Studio Android Studio 3.1.2 ниже код работает.

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.Zip

если Android Studio 3.3.1 ниже код работает.

1) gradle-wrapper.properties добавить ниже строки.

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

2) build.gradle на уровне проекта добавить ниже 

 dependencies { 
             classpath 'com.Android.tools.build:gradle:3.1.0'
 }
0
satyawan hajare

Если ваш плагин gradle 3.0.0 для студии версии 3.0, добавьте его в gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip
0
John Ruban Singh