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 вы также можете попробовать закрыть среду IDE, а затем убить все процессы Java.
Я искал google и нашел несколько решений, таких как this, но ничего не работает. Кто-нибудь знает, как это исправить?
Ответы
Ответ 1
Обновите инструменты сборки 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).
BTW: версия 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()
}
Ответ 2
Для последнего обновления Android Studio 3.0
В gradle-wrapper.properties
(Имя файла) измените URL-адрес distributionUrl
на следующий:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Ответ 3
Если вы используете плагин gradle 2.1.3,
Это легко решить:
обновите плагин gradle до версии 2.2.0-beta1
Примечания: это бета-версия, возможно, вы можете получить любые другие проблемы.
https://discuss.gradle.org/t/classcastexception-in-gradle-nightly-3-0-20160609/17979
Счастливое кодирование:)
Ответ 4
Хорошо, я начал работать. Для тех, кто сталкивается с той же проблемой, как это работает для меня, это выглядит следующим образом:
- Перейдите в свою внешнюю папку .gradle(для меня это был C:\Users\drilon.gradle). Внутри кэша и папки daemon удалите всю папку с версией (они выглядят так: "2.14.1" или "3.0" ). Также перейдите в wrapper → dists → удалите все, что есть.
- Внутри вашего корня проекта (для меня это был C:\Users\drilon\AndroidStudioProjects\PorjectName), перейдите в папку .gradle и удалите все.
- Восстановить проект
EDIT:
Оказывается, это решение устанавливает версию gradle обратно в 2.14.1. end0421 является рабочим.
Ответ 5
если ваша версия 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
Ответ 6
Для последнего обновления Android Studio 3.3.1 ниже работает код.
1) gradle-wrapper.properties добавить ниже строки.
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
2) build.gradle на уровне проекта добавить ниже classpath
dependencies
{
classpath 'com.android.tools.build:gradle:3.1.0'
}
Ответ 7
Просто удалите все внутри папки Gradle в основной папке проекта и перестройте проект. Это начнет работать.
Ответ 8
Если ваш плагин gradle 3.0.0 для студии версии 3.0, добавьте его в gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Ответ 9
простой ответ попробуйте это...
перейдите к 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.zip в 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.zip в gradle-wrapper.properties.
проверить это будет работать
Ответ 10
если 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'
}
Ответ 11
After 1 hour R&D No 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