Использование новой студии Android с новым подключением Gradle 3.0.0.
При сборке появилось предупреждение:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Использование новой студии Android с новым подключением Gradle 3.0.0.
При сборке появилось предупреждение:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Насколько я могу судить, плагины, добавленные как зависимости пути к классам, вызовут проблемы. Т.е. У Firebase возникла проблема с этим. Ложка и Flutter. Выполнение этого поиска в Google обнаруживает множество репозиториев GitHub с проблемой, поднятой по то же самое, и все, что у них общего, это то, что это плагин Gradle. Ткань также является причиной, как упоминал Mate *
Насколько я могу судить, проблема связана с несколькими плагинами Gradle. Это также может быть вызвано вашим кодом Gradle, но это, скорее всего, не применимо, если ваш проект является приложением, а не плагином Gradle.
И, как упомянул Алекс Кон в комментарии, устаревание является предупреждением. В данном случае это означает, что эта функция в конечном итоге будет удалена. Так что пока, если это плагин (а не созданный вами), вы можете игнорировать его. К тому времени, когда он будет удален, большинство / все основные плагины должны быть обновлены, чтобы исправить это.
И снова это предупреждение; не ошибка. Вы все равно можете запустить его и игнорировать, если вы ничего не можете поделать с проблемой. Отключение, например, плагин Fabric * - это перебор, поскольку он все еще работает.
Я сам не использую Fabric, и Fabric не является открытым исходным кодом, поэтому я не знаю, исправили ли разработчики это или нет
TL; DR: причиной являются плагины Gradle. Это предупреждение (а не ошибка), поэтому удаление подключаемых модулей, вызывающих проблему, является излишним. Если вы не можете исправить это, оставьте его в покое, поскольку он только устарел (не удален)
Если вы используете Firebase, для этого есть специальное решение, которое также упоминается в руководстве по миграции (ссылка на который приведена позже в этом сообщении); исключить модуль guava
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
Саму проблему довольно сложно обнаружить. Насколько я могу судить, во всех проверенных мной плагинах (и связанных в этом ответе) нет единой проблемы, которая бы ее вызывала. Если вы закодировали что-то, что вызывает проблему (и это можно исправить; добавление стороннего плагина gradle не вызывает этого), есть некоторые вещи, которые вы можете попытаться исправить.
Насколько я могу судить о фактической причине, она решается обновлением файла Gradle (хотя в библиотеке Spoon это было исправлено путем изменения строки, связанной с TestVariant
), следуя темам в руководстве по миграции Gradle plugin 3.0.0.
Все это описано в документации разработчика, но вот некоторые из вещей, которые, на мой взгляд, важны на основе запросов на вытягивание, выполненных в проектах, где это было проблемой:
Помимо обновления версии Gradle и плагина, вам также необходимо добавить репозиторий google()
в repositories
.
compile
теперь implementation
или api
, но рекомендуется implementation
.
provided
равно compileOnly
, а apk
равно runtimeOnly
androidTestCompile
стал androidTestImplementation
, а testCompile
-> testImplementation
Если вы используете ароматизаторы, вы должны использовать размеры аромата (описанные в документации).
Для типов сборки вы должны включить резервные варианты на случай, если есть библиотека, которая не имеет этого типа сборки. Они определены в блоке profile
под блоком android
.
Если это еще не сделано, сначала необходимо определить плагин gradle. Если у вас нет других зависимостей пути к классам, это не проблема. Но если вы это сделаете, убедитесь, что сначала определен плагин gradle.
Если вы используете testVariants
, убедитесь, что вы не вызываете testedVariant
в классе. Похоже, это причина для библиотеки Spoon.
Это, насколько я могу судить, некоторые изменения, которые были внесены для устранения проблемы.
Я использую плагин Play Services Gradle com.google.gms:google-services
с версией 4.2.0
.
В исходном коде мы видим, что:
Так что для меня это было причиной моих предупреждений и не может быть удалено, пока плагин не будет исправлен. Проблема находится здесь
Как упоминал @Zoe, это также может происходить из других плагинов Gradle.
Лучший
Проблема решена с помощью подключаемого модуля служб Google версии 4.3.0 (решена с помощью этой фиксации а>)
buildscript {
dependencies {
// Change version to 4.3.0
classpath 'com.google.gms:google-services:4.3.0'
}
}
Найдено здесь
Обновление до последней версии подключаемого модуля Fabric Gradle устраняет эту проблему.
Из журнала изменений:
https://docs.fabric.io/android/changelog.html#march-15-2018
В моем случае это было вызвано несовпадением версий библиотек поддержки Android. Я обновил все модули до последней версии (28.0.0), и это решило проблему.
После правильной установки Fabric эта проблема была решена для меня.
import com.crashlytics.android.Crashlytics;
import io.fabric.sdk.android.Fabric;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
}
}
build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
dependencies {
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
У меня было это сообщение об ошибке и многие другие, например
x-version is deprecated and use y-version instead and it'll be removed in 2019
и весь мой проект внезапно начал выдавать одни и те же сообщения об ошибках.
Студия Android предупреждала о моей антивирусной программе. Я пытался настроить его, но не получилось.
Наконец, Я удалил антивирус QuickHeal из своей системы, и теперь все в порядке
Все остальные ответы касаются проблем с сторонними компонентами.
Вот как обновить ваш проект, который напрямую использует registerResGeneratingTask
:
До:
variant.registerResGeneratingTask generateIcon, ICON_DIR
После:
variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)
Уровень проекта Build.Gradle
Используйте следующую версию зависимости сервисов Google.
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.google.gms:google-services:4.3.0'
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
}
Решенный вопрос для меня.
Для меня это предупреждение исчезло, когда я отключил плагин для ткани Gradle, o пожалуйста, проверьте, используете ли вы ткань или другой плагин, который я ответственен за это предупреждение.
com.google.gms:google-services
4.0.1
& 4.0.2
оба вызывают это предупреждение.
- person Martin Zeitler; 28.07.2018