RegisterResGeneratingTask sudah usang, gunakan registerGeneratedFolders (FileCollection)

158

Menggunakan studio android baru dengan pluging 3.0.0 Gradle baru.
Ketika membangun beberapa peringatan terjadi:

registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Valentin Baryshev
sumber
1
dapatkah Anda menunjukkan tugas gradle Anda? apakah kamu punya split apk?
itzhar
silakan menunjukkan Anda Gradle
Jéwôm'
Pernahkah Anda melihat artikel ini yang menjelaskan masalah sebenarnya (masalah yang diketahui) dan solusinya? (Hit pertama di Google.)
ashleedawg
@ashleedawg apa yang harus saya lakukan? perbarui studio android? atau perpustakaan?
Valentin Baryshev
4
@ashleedawg solusi yang Anda sebutkan adalah, kecuali saya salah paham, untuk tetap menggunakan versi plugin gradle yang lebih lama. Ini bukan cara untuk menangani penghinaan dalam jangka panjang. Dalam jangka pendek, peringatan itu dapat <s> diabaikan </s> diingat, tetapi tidak ada tindakan segera yang diperlukan.
Alex Cohn

Jawaban:

46

Dari apa yang saya tahu, plugin yang ditambahkan sebagai dependensi classpath akan memberikan masalah. Yaitu Firebase memiliki masalah dengannya. Sendok dan Bergetar juga. Melakukan pencarian Google ini mengungkapkan banyak repo GitHub dengan masalah yang diangkat tentang hal yang sama, dan semua kesamaan yang mereka miliki adalah kenyataan bahwa itu adalah plugin Gradle. Kain juga tampaknya menjadi penyebab, sebagaimana disebutkan oleh Mate *

Dari apa yang saya tahu, masalahnya berasal dari / beberapa plugin Gradle. Itu juga dapat dipicu oleh kode Gradle Anda, tetapi ini kemungkinan besar tidak berlaku jika proyek Anda adalah aplikasi dan bukan plugin Gradle.

Dan seperti yang disebutkan oleh Alex Cohn dalam komentar, penghinaan adalah peringatan. Dalam hal ini, itu berarti fitur yang pada akhirnya akan dihapus. Jadi untuk saat ini, dengan asumsi itu adalah plugin (dan tidak dibuat oleh Anda), Anda dapat mengabaikannya. Pada saat itu dihapus, sebagian besar / semua plugin utama harus diperbarui untuk memperbaikinya.

Dan, sekali lagi, ini adalah peringatan; bukan kesalahan. Anda masih dapat menjalankannya, dan mengabaikannya jika tidak ada yang dapat Anda lakukan tentang masalah ini. Menonaktifkan mis. Plugin Fabric * berlebihan, karena masih berfungsi.

Saya tidak menggunakan Fabric sendiri, dan Fabric bukan open-source, jadi saya tidak tahu apakah pengembang memperbaikinya atau tidak

TL; DR: Plugin gradle adalah penyebabnya. Ini peringatan (bukan kesalahan), jadi lepaskan plugin yang menyebabkan masalah ini berlebihan. Jika Anda tidak dapat memperbaikinya, biarkan saja selama itu hanya usang saat ini (tidak dihapus)


Jika Anda menggunakan Firebase, ada solusi khusus untuk itu yang juga disebutkan dalam panduan migrasi (ditautkan nanti di posting ini); tidak termasuk modul jambu biji

classpath ('com.google.firebase:firebase-plugins:1.1.0') {
    exclude group: 'com.google.guava', module: 'guava-jdk5'
}

Masalahnya sendiri cukup sulit dideteksi. Dari apa yang saya tahu, tidak ada masalah tunggal yang menyebabkannya di semua plugin yang saya periksa (dan ditautkan dalam jawaban ini). Jika Anda telah membuat kode sesuatu yang menyebabkan masalah (dan mungkin memperbaikinya; menambahkan plugin gradle pihak ke-3 tidak menyebabkannya), ada beberapa hal yang dapat Anda coba untuk memperbaikinya.

Dari apa yang saya tahu penyebab sebenarnya, ini diselesaikan dengan memperbarui file Gradle (meskipun di perpustakaan Spoon, itu diperbaiki dengan mengubah baris yang terkait dengan TestVariant) dengan mengikuti topik dalam panduan migrasi plugin 3.0.0 Gradle.

Semuanya dibahas oleh pengembang dokumen , tapi di sini ada beberapa hal yang saya pikir relevan berdasarkan permintaan tarik dilakukan pada proyek-proyek di mana itu menjadi masalah:

Selain memperbarui versi dan plugin Gradle, Anda juga perlu menambahkan google()repo di bawah repositories.

compilesekarang implementationatau api, tetapi implementationyang disarankan.

providedadalah compileOnlydan apksekarangruntimeOnly

androidTestCompiletelah menjadi androidTestImplementation, dan testCompile->testImplementation

Jika Anda menggunakan rasa, Anda harus menggunakan dimensi rasa (tercakup oleh dokumen).

Untuk tipe build, Anda harus menyertakan fallback jika ada perpustakaan yang tidak memiliki tipe build tersebut. Ini didefinisikan dalam profileblok di bawah androidblok.

Jika belum dilakukan, plugin gradle harus ditentukan terlebih dahulu. Jika Anda tidak memiliki dependensi classpath lain, itu bukan masalah. Tetapi jika Anda melakukannya, pastikan plugin gradle didefinisikan terlebih dahulu.

Jika Anda menggunakan testVariants, pastikan Anda tidak menelepon testedVariantdi kelas. Tampaknya menjadi penyebab perpustakaan Spoon.

Hal-hal ini, dari apa yang saya dapat katakan, beberapa perubahan yang dibuat untuk memperbaiki masalah.

Zoe
sumber
Tapi saya tidak dapat men-debug baris kode yang menunjukkan kesalahan
Abhinav Gupta
KEGAGALAN: Build gagal dengan pengecualian. * Apa yang salah: Eksekusi gagal untuk tugas ': app: compileDebugJavaWithJavac'. > Kompilasi gagal; lihat output kesalahan kompiler untuk detailnya. * Coba: Jalankan dengan opsi --stacktrace untuk mendapatkan jejak stack. Jalankan dengan opsi --info atau --debug untuk mendapatkan lebih banyak keluaran log. Jalankan dengan --scan untuk mendapatkan wawasan penuh. * Dapatkan bantuan lebih lanjut di help.gradle.org BUILD GAGAL dalam tugas 4s 29: 2 dieksekusi, 27 up-to-date
Abhinav Gupta
@AbhinavGupta itu bukan stacktrace. Itu hanya pesan yang mengatakan ada yang tidak beres
Zoe
tapi saya tidak bisa menyelesaikan ini dan ini menyebabkan saya tidak dapat menginstal apk di perangkat saya
Abhinav Gupta
@AbhinavGupta jadi ajukan pertanyaan baru tentang Stack Overflow
Zoe
17

Saya menggunakan plugin Play Services Gradle com.google.gms:google-servicesdengan versi 4.2.0.

Dalam kode sumber kita dapat melihat bahwa: masukkan deskripsi gambar di sini

Jadi bagi saya, itulah alasan peringatan saya dan tidak dapat dihapus sampai plugin diperbaiki. Masalahnya ada di sini

Seperti yang disebutkan oleh @Zoe, ini mungkin berasal dari Plugin Gradle lainnya juga.

Terbaik

pengguna1998494
sumber
15

Masalah ini diatasi dengan Plugin Layanan Google Versi 4.3.0 (Diselesaikan dengan komit ini )

buildscript {
    dependencies {
        // Change version to 4.3.0
        classpath 'com.google.gms:google-services:4.3.0'
    }
}

Ditemukan di sini

Lebih sederhana
sumber
10

Memperbarui ke versi terbaru dari Plugin Fabric Gradle memperbaiki masalah ini.

Dari changelog:

  • Memperbaiki peringatan penghentian “registerResGeneratingTask”.

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

luis_cortes
sumber
Apa sebenarnya itu? Apakah layak ditingkatkan? Apakah ini menyebabkan masalah (sebelum dan sesudah pembaruan)? Kami menggunakan v2.6.8 dan sekarang mereka memiliki v2.9.3, tapi saya tidak melihat bagaimana melihatnya di changelog. Mereka memiliki versi yang berbeda di sana ("1.4.2 24 Mei 2018" misalnya)
pengembang android
@androiddeveloper Anda membingungkan Fabric Gradle Plugin dan Crashlytics. Lihat berbagai komponen di menu sebelah kiri.
Eugen Pechanec
4

Dalam kasus saya ini disebabkan oleh versi yang tidak cocok dari perpustakaan dukungan Android. Saya memperbarui semua modul ke versi terbaru (28.0.0) dan menyelesaikannya.

Lee Hounshell
sumber
1

Setelah menginstal Fabric dengan benar, masalah ini diselesaikan untuk saya

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' }
}
Nithin Raja
sumber
1

Saya punya pesan kesalahan ini dan banyak yang lain suka

x-version is deprecated and use y-version instead and it'll be removed in 2019

dan semua proyek saya mulai memberikan pesan kesalahan yang sama tiba-tiba.

Studio Android memberi peringatan tentang program antivirus saya. Saya mencoba mengonfigurasinya tetapi tidak berhasil.

Akhirnya saya uninstall antivirus QuickHeal dari sistem saya dan semuanya baik-baik saja sekarang

Makarand
sumber
0

Semua jawaban lainnya adalah tentang masalah dengan komponen pihak ketiga .

Berikut cara memperbarui proyek Anda yang menggunakan registerResGeneratingTasksecara langsung:

Sebelum:

variant.registerResGeneratingTask generateIcon, ICON_DIR

Setelah:

variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)
0xF
sumber
0

Tingkat Proyek Build.Gradle

Gunakan versi ketergantungan layanan google berikut ini.

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'
    }
}

Masalah terpecahkan untuk saya.

Akram Chauhan
sumber
-2

Bagi saya peringatan ini hilang ketika saya mematikan plugin fabric gradle, o silakan periksa apakah Anda menggunakan fabric atau plugin lain yang saya bertanggung jawab atas peringatan ini.

Pasangan
sumber
Kain dihapus, tetapi tetap saja peringatan ini muncul.
Valentin Baryshev
Saya tidak menggunakan kain dan saya punya pesan ini!
thiagolr
3
Menonaktifkan plugin io.fabric mengurangi 8 dari peringatan ini menjadi 4. Jadi sepertinya ada lebih dari satu sumber.
Mario Huizinga
4
com.google.gms:google-services 4.0.1& 4.0.2Keduanya menyebabkan pemberitahuan peringatan ini.
Martin Zeitler