it-swarm.com.ru

RegisterResGeneratingTask устарела, используйте registerGeneratedFolders (FileCollection)

._____. При строительстве произошло предупреждение:.

registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
107
Valentin Baryshev

Из того, что я могу сказать, плагины, добавленные как зависимости classpath, создадут проблемы. То есть Firebase была проблема с ним. Ложка и Флаттер также. Делая этот поиск в Google выявляет множество репозиториев GitHub с проблемой, поднятой из-за одной и той же вещи, и все, что их объединяет, - это то, что это плагин Gradle. Ткань, кажется, также является причиной, как упомянуто Mate *

Из того, что я могу сказать, проблема возникает из/несколько плагинов 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, вам также необходимо добавить репозиторий google() в разделе repositories.

compile теперь implementation или api, но рекомендуется implementation.

provided является compileOnly и apk является runtimeOnly

androidTestCompile стал androidTestImplementation, а testCompile -> testImplementation

Если вы используете ароматизаторы, вы должны использовать размеры ароматизаторов (указанные в документации).

Для типов сборки вы должны включить запасные варианты на случай, если есть библиотека, у которой нет этого типа сборки. Они определены в блоке profile в блоке Android.

Если это еще не сделано, плагин Gradle должен быть определен первым. Если у вас нет других зависимостей пути к классам, это не проблема. Но если вы это сделаете, убедитесь, что плагин gradle определен первым.

Если вы используете testVariants, убедитесь, что вы не вызываете testedVariant в классе. Кажется, это причина для библиотеки Spoon.

Эти вещи, насколько я могу судить, являются некоторыми изменениями, которые были внесены для устранения проблемы.

20
Zoe

Обновление до последней версии Fabric Gradle Plugin устраняет эту проблему.

Из журнала изменений:

  • Исправлено предупреждение об устаревании «registerResGeneratingTask».

https://docs.fabric.io/Android/changelog.html#march-15-2018

8
luis_cortes

Я использую плагин Play Services Gradle com.google.gms:google-services с версией 4.2.0.

В исходном коде мы видим, что:  enter image description here

Так что для меня это было причиной моих предупреждений и не может быть удалено, пока плагин не будет исправлен. Вопрос в том, здесь

Как уже упоминалось @Zoe, это может происходить и от других плагинов Gradle.

Лучший

6
user1998494

В моем случае это было вызвано несоответствующей версией библиотек поддержки Android. Я обновил все модули до последней версии (28.0.0), и это решило проблему.

2
Lee Hounshell

После правильной установки 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' }
}
1
Nithin Raja

Для меня это предупреждение исчезло, когда я отключил плагин Fabric Gradle. O Пожалуйста, проверьте, используете ли вы Fabric или другой плагин, который я ответственный за это предупреждение.

0
Mate