Использование новой студии Android с новым подключением Gradle 3.0.0.
При строительстве появилось какое-то предупреждение:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Использование новой студии Android с новым подключением Gradle 3.0.0.
При строительстве появилось какое-то предупреждение:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Из того, что я могу сказать, плагины, добавленные как зависимости classpath, будут вызывать проблемы. Т.е. у Firebase была проблема с этим. Ложка и флаттер. Выполнение этого поиска в Google выявляет множество репозиториев GitHub с проблемой, поднятой из-за одной и той же вещи, и все, что у них общего, - это то, что это плагин Gradle. Ткань, кажется, также является причиной, как упомянуто Мате *
Из того, что я могу сказать, проблема возникает из/несколько плагинов Gradle. Это также может быть вызвано вашим кодом Gradle, но это, скорее всего, не применимо, если ваш проект является приложением, а не плагином Gradle.
И, как упомянул в своем комментарии Алекс Кон, осуждение является предупреждением. В данном случае это означает, что эта функция будет удалена в конце концов. Так что пока, предполагая, что это плагин (а не сделан вами), вы можете игнорировать его. К тому времени, когда он удален, большинство/все основные плагины должны быть обновлены, чтобы исправить это.
И, опять же, это предупреждение; не ошибка. Вы все еще можете запустить его и игнорировать, если ничего не можете поделать с этой проблемой. Например, отключение плагина Fabric * излишне, так как все еще работает.
Я сам не использую Fabric, а Fabric не с открытым исходным кодом, поэтому я не знаю, исправили ли разработчики это или нет
TL; DR: плагины Gradle являются причиной. Это предупреждение (не ошибка), поэтому удаление плагинов, вызывающих проблему, является излишним. Если вы не можете это исправить, оставьте это в покое, пока это только устарело в данный момент (не удалено)
Если вы используете Firebase, есть конкретное решение, которое также упоминается в руководстве по миграции (ссылка приведена далее в этом посте); исключить модуль гуавы
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
Саму проблему довольно трудно обнаружить. Из того, что я могу сказать, нет ни одной проблемы, которая бы вызывала ее во всех плагинах, которые я проверял (и ссылался в этом ответе). Если вы написали что-то, что вызывает проблему (и это можно исправить; добавление стороннего подключаемого модуля gradle не вызывает этого), есть некоторые вещи, которые вы можете попытаться исправить.
Исходя из того, что я могу сказать о фактической причине, она была решена путем обновления файла Gradle (хотя в библиотеке Spoon это было исправлено путем изменения строки, связанной с TestVariant
), следуя темам в руководстве по миграции плагина Gradle 3.0.0.
Все это покрыто документами для разработчиков, но здесь некоторые вещи, которые я считаю актуальными, основаны на запросах на извлечение, выполненных в проектах, где это было проблемой:
Помимо обновления версии и плагина Gradle, вам также необходимо добавить repositories
google()
в repositories
.
compile
теперь является implementation
или api
, но implementation
является рекомендуемой.
provided
compileOnly
и apk
является runtimeOnly
androidTestCompile
стал androidTestImplementation
, а testCompile
→ testImplementation
Если вы используете ароматизаторы, вы должны использовать размеры ароматизаторов (указанные в документации).
Для типов сборки вы должны включить запасные варианты на случай, если есть библиотека, у которой нет этого типа сборки. Они определены в блоке profile
под блоком android
.
Если это еще не сделано, плагин Gradle должен быть определен первым. Если у вас нет других зависимостей пути к классам, это не проблема. Но если вы это сделаете, убедитесь, что плагин gradle определен первым.
Если вы используете testVariants
, убедитесь, что вы не вызываете testedVariant
в классе. Кажется, это причина для библиотеки Spoon.
Эти вещи, насколько я могу судить, являются некоторыми изменениями, которые были сделаны для устранения проблемы.
Я использую плагин Play сервисов Gradle com.google.gms:google-services
с версией 4.2.0
.
В исходном коде мы видим, что:
Так что для меня это было причиной моих предупреждений и не может быть удалено, пока плагин не будет исправлен. Вопрос здесь
Как уже упоминалось @Zoe, это может происходить и от других плагинов Gradle.
Лучший
Обновление до последней версии подключаемого модуля Fabric Gradle устраняет эту проблему.
Из журнала изменений:
В моем случае это было вызвано несовпадением версий библиотек поддержки 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' }
}
Для меня это предупреждение исчезло, когда я отключил плагин для ткани gradle, o проверьте, используете ли вы ткань или другой плагин, ответственный за это предупреждение.
Проблема решена с помощью плагина Google Services версии 4.3.0 (решена с помощью этого коммита)
buildscript {
dependencies {
// Change version to 4.3.0
classpath 'com.google.gms:google-services:4.3.0'
}
}
Нашел здесь