RegisterResGeneratingTask पदावनत है, registerGeneratedFolders (FileCollection) का उपयोग करें


158

नए 3.0.0 ग्रेडिंग प्लगिंग के साथ नए एंड्रॉइड स्टूडियो का उपयोग करना।
जब कुछ चेतावनी का निर्माण हुआ:

registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)

1
क्या आप अपने ग्रेडेल कार्यों को दिखा सकते हैं? क्या आपके पास एपीपी विभाजन है?
इटजहार

कृपया अपना
ग्रेडल

क्या आपने इस लेख को सटीक समस्या (ज्ञात समस्या) और वर्कअराउंड का वर्णन करते देखा है ? (पहली हिट गूगल पर।)
ashleedawg

@ashleedawg मुझे क्या करना चाहिए? एंड्रॉयड स्टूडियो अपडेट करें? या कुछ पुस्तकालय?
वैलेंटाइन बैरशेव

4
@ashleedawg आपके द्वारा उल्लिखित वर्कअराउंड है, जब तक कि मैं इसे गलत न समझ लूं, ग्रेडल प्लगइन के पुराने संस्करण के साथ रहना है। यह लंबे समय में पदावनति को संभालने का तरीका नहीं है। थोड़े समय में, चेतावनी को याद किया जा सकता है, याद किया गया, लेकिन तत्काल कार्रवाई की आवश्यकता नहीं है।
एलेक्स कोहेन

जवाबों:


46

मैं जो बता सकता हूं, उससे वर्गपथ निर्भरता के रूप में जोड़े गए प्लगइन्स समस्याएँ देंगे। Ie Firebase के पास एक मुद्दा था। चम्मच और स्पंदन भी। ऐसा करने से यह गूगल खोज एक ही बात अधिक की राशि जुटाई एक मुद्दा साथ GitHub रेपोस का एक बहुत से पता चलता है, और सभी वे आम में है तथ्य यह है कि यह एक Gradle प्लगइन है। कपड़े एक कारण के रूप में अच्छी तरह से प्रतीत होता है, जैसा कि मेट * द्वारा उल्लेख किया गया है

मैं जो बता सकता हूं, वह समस्या एक / एकाधिक ग्रेडल प्लगइन (एस) से आती है। यह आपके ग्रेड कोड द्वारा भी ट्रिगर किया जा सकता है, लेकिन यह सबसे अधिक संभावना नहीं है अगर आपका प्रोजेक्ट एक ऐप है और ग्रेडल प्लगइन नहीं है।

और जैसा कि एलेक्स कोहेन ने एक टिप्पणी में उल्लेख किया है , पदावनति एक चेतावनी है। इस मामले में, इसका मतलब है कि यह एक ऐसी सुविधा है जो अंततः निकालने वाली है। तो अभी के लिए, यह मान लेना एक प्लगइन है (और आपके द्वारा नहीं बनाया गया है), आप इसे अनदेखा कर सकते हैं। जब तक इसे हटाया जाता है, तब तक इसे ठीक करने के लिए अधिकांश / सभी प्रमुख प्लगइन्स को अपडेट किया जाना चाहिए।

और, फिर से, यह एक चेतावनी है; कोई त्रुटि नहीं। आप अभी भी इसे चला सकते हैं, और इसे अनदेखा कर सकते हैं यदि समस्या के बारे में आप कुछ नहीं कर सकते हैं। जैसे कि फैब्रिक * प्लगइन को निष्क्रिय करना, ओवरक्लिल है, क्योंकि यह अभी भी काम करता है।

मैं स्वयं फैब्रिक का उपयोग नहीं करता हूं, और फैब्रिक ओपन-सोर्स नहीं है, इसलिए मुझे नहीं पता कि डेवलपर्स ने इसे ठीक किया या नहीं

TL; DR: ग्रैडल प्लगइन्स इसका कारण हैं। यह एक चेतावनी है (एक त्रुटि नहीं), इसलिए इस समस्या का कारण बनने वाले प्लगइन्स को हटाना ओवरकिल है। यदि आप इसे ठीक नहीं कर सकते हैं, तो इसे तब तक अकेला छोड़ दें, जब तक कि इसे केवल हटा दिया गया हो (हटाया नहीं गया)


यदि आप फायरबेस का उपयोग करते हैं, तो इसका एक विशिष्ट समाधान है जो माइग्रेशन गाइड (इस पोस्ट में बाद में जुड़ा हुआ) में भी वर्णित है; अमरूद मॉड्यूल को बाहर करें

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

इस मुद्दे का पता लगाने के लिए काफी मुश्किल है। मैं जो बता सकता हूं, उसमें से कोई भी एक समस्या नहीं है जो इसे मेरे द्वारा चेक किए गए सभी प्लगइन्स (और इस उत्तर में लिंक) के कारण होती है। यदि आपने कुछ ऐसा कोड किया है जो समस्या का कारण बनता है (और इसे ठीक करना संभव है, तो एक 3 पार्टी ग्रेडल प्लग इन जोड़ना कारण नहीं है), कुछ चीजें हैं जो आप इसे ठीक करने का प्रयास कर सकते हैं।

मैं वास्तविक कारण के रूप में जो बता सकता हूं, वह ग्रेडल फ़ाइल को अपडेट करके हल किया गया है (हालांकि स्पून लाइब्रेरी में, यह संबंधित लाइन को बदलकर तय किया गया था) TestVariant ग्रेडल प्लगइन 3.0.0 माइग्रेशन गाइड में विषयों का पालन करके ) ।

पूरी बात डेवलपर डॉक्स द्वारा कवर की गई है , लेकिन यहां मुझे लगता है कि कुछ प्रोजेक्ट्स पर किए गए पुल अनुरोधों के आधार पर प्रासंगिक है जहां यह एक समस्या है:

ग्रेड संस्करण और प्लगइन को अद्यतन करने के अलावा, आपको google()रेपो को भी जोड़ना होगाrepositories

compileअभी implementationया है api, लेकिनimplementation एक की सिफारिश की है।

providedहै compileOnlyऔर apkहैruntimeOnly

androidTestCompileबन गया है androidTestImplementation, औरtestCompile ->testImplementation

यदि आप स्वादों का उपयोग करते हैं, तो आपको स्वाद आयाम (डॉक्स द्वारा कवर) का उपयोग करना होगा।

बिल्ड प्रकारों के लिए, आपको उस स्थिति में कमियां शामिल करनी होंगी, जिसमें एक लाइब्रेरी है जिसमें वह बिल्ड प्रकार नहीं है। इन्हें profileब्लॉक में परिभाषित किया गया हैandroid

यदि पहले से नहीं किया गया है, तो ग्रेडेल प्लगइन को पहले परिभाषित किया जाना है। यदि आपके पास कोई अन्य वर्ग-निर्भरता नहीं है, तो यह कोई समस्या नहीं है। लेकिन अगर आप करते हैं, तो सुनिश्चित करें कि पहले ग्रेड प्लग को परिभाषित किया गया है।

यदि आप उपयोग करते हैं testVariants, तो सुनिश्चित करें कि आप testedVariantकक्षा में नहीं बुलाते हैं । यह स्पून लाइब्रेरी का कारण प्रतीत होता है।

ये चीजें हैं, जो मैं बताने में सक्षम हूं, कुछ ऐसे बदलाव जो इस मुद्दे को ठीक करने के लिए किए गए थे।


लेकिन मैं कोड लाइन को डिबग करने में सक्षम नहीं हूं, यह त्रुटि दिखाता है
अभिनव गुप्त

विफलता: बिल्ड अपवाद के साथ विफल हुआ। * क्या गलत हुआ: कार्य के लिए निष्पादन विफल रहा ': ऐप: compileDebugJavaWithJavac'। > संकलन विफल; विवरण के लिए संकलक त्रुटि आउटपुट देखें। * प्रयास करें: स्टैक ट्रेस पाने के लिए --stacktrace विकल्प के साथ चलाएँ। अधिक लॉग आउटपुट प्राप्त करने के लिए --info या --debug विकल्प के साथ चलाएँ। पूर्ण अंतर्दृष्टि प्राप्त करने के लिए --scan के साथ दौड़ें। * Help.gradle.org पर अधिक सहायता प्राप्त करें। BUILD 4S 29 कार्यों में विफल: 2 निष्पादित, 27 अप-टू-डेट
अभिनव गुप्ता

@ अभिनवभट्ट कि स्टैक्ट्रेस नहीं है। यह सिर्फ एक संदेश है जो आपको बता रहा है कि कुछ गलत हो गया है
Zoe

लेकिन मैं इसे हल नहीं कर पा रहा हूं और इसका कारण मैं अपने डिवाइस में एपीके इंस्टॉल नहीं कर पा रहा हूं
अभिनव गुप्ता

@ अभिनवगुप्त ने स्टैक ओवरफ्लो पर एक नया प्रश्न पूछा
ज़ो

17

मैं com.google.gms:google-servicesसंस्करण के साथ प्ले सेवाओं ग्रेड प्लगइन का उपयोग कर रहा हूं4.2.0

स्रोत कोड में हम देख सकते हैं कि: यहां छवि विवरण दर्ज करें

इसलिए मेरे लिए, यह मेरी चेतावनी का कारण था और जब तक प्लगइन ठीक नहीं हो जाता, तब तक इसे हटाया नहीं जा सकता। मुद्दा है यहाँ है

जैसा कि @Zoe द्वारा बताया गया है, यह अन्य ग्रेडल प्लगइन्स से भी आ सकता है।

श्रेष्ठ



10

फैब्रिक ग्रैडल प्लगिन के नवीनतम संस्करण में अपडेट करने से यह समस्या ठीक हो जाती है।

चैंज से:

  • फिक्स्ड "registerResGeneratingTask" पदावनति चेतावनी।

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


हालांकि यह वास्तव में क्या है? क्या यह उन्नयन के लायक है? क्या यह किसी भी मुद्दे (अद्यतन करने से पहले और बाद) का कारण बनता है? हम v2.6.8 का उपयोग करते हैं और अब उनके पास v2.9.3 है, लेकिन मैं यह नहीं देखता कि इसे चैंज में कैसे देखा जाए। उनके विभिन्न संस्करण हैं (उदाहरण के लिए "1.4.2 मई 24, 2018")
एंड्रॉइड डेवलपर

@androiddeveloper आप फैब्रिक ग्रेडल प्लगिन और क्रैशलाईटिक्स को भ्रमित कर रहे हैं। बाएँ मेनू में विभिन्न घटकों की जाँच करें।
यूजेन पिंचेक

4

मेरे मामले में यह एंड्रॉइड सपोर्ट लाइब्रेरी के बेमेल संस्करण के कारण हुआ। मैंने सभी मॉड्यूल को नवीनतम संस्करण (28.0.0) में अपडेट किया और इसे हल किया।


1

फैब्रिक को ठीक से स्थापित करने के बाद यह मुद्दा मेरे लिए हल हो गया

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

मेरे पास यह त्रुटि संदेश था और बहुत से अन्य जैसे

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

और मेरे सभी प्रोजेक्ट ने अचानक एक ही त्रुटि संदेश देना शुरू कर दिया।

एंड्रॉइड स्टूडियो मेरे एंटीवायरस प्रोग्राम के बारे में चेतावनी दे रहा था। मैंने इसे कॉन्फ़िगर करने की कोशिश की लेकिन काम नहीं किया।

अंत में मैंने अपने सिस्टम से QuickHeal एंटीवायरस को अनइंस्टॉल कर दिया और अब सब ठीक है


0

अन्य सभी उत्तर तृतीय-पक्ष घटकों के साथ समस्याओं के बारे में हैं ।

अपनी परियोजना को registerResGeneratingTaskसीधे अपडेट करने का तरीका यहां बताया गया है :

इससे पहले:

variant.registerResGeneratingTask generateIcon, ICON_DIR

उपरांत:

variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)

0

प्रोजेक्ट लेवल बिल्ड.ग्रैडल

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

मेरे लिए समस्या का हल।


-2

मेरे लिए यह चेतावनी गायब हो गई जब मैंने फैब्रिक ग्रेडल प्लगइन को बंद कर दिया, ओ कृपया जांचें कि क्या आप कपड़े या किसी अन्य प्लगइन का उपयोग करते हैं जो कि मैं इस चेतावनी के लिए जिम्मेदार हूं।


हटाए गए कपड़े, लेकिन फिर भी यह चेतावनी दिखाई देती है।
वैलेंटाइन बैरशेव

मैं कपड़े का उपयोग नहीं कर रहा हूं और मेरे पास यह संदेश है!
थियागोलर

3
प्लगइन को निष्क्रिय करना io.fabric ने इन चेतावनियों में से 8 को कम कर दिया 4. तो ऐसा लगता है कि एक से अधिक स्रोत हैं।
मारियो Huizinga

4
com.google.gms:google-services 4.0.1और 4.0.2दोनों इस चेतावनी नोटिस कारण।
मार्टिन ज़ेइटलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.