त्रुटि प्राप्त करना कहता है - हस्ताक्षरित APK बनाते समय "प्रवेश नाम 'रेस / लेआउट / test_toolbar.xml' टकरा गया"


17

मैंने अपने एंड्रॉइड स्टूडियो को आज 3.5.x से 3.6 तक अपडेट किया है और निम्न संदेश दिखाते हुए बिल्ड वैरिएंट के लिए साइन इन करते हुए एपीके जनरेट करते समय त्रुटि प्राप्त कर रहा है - एंट्री नाम 'रेस / लेआउट / test_toolbar.xml' टकरा गया, मेरे पास ऐसा कोई लेआउट नहीं है जिसका नाम नहीं है पूरे प्रोजेक्ट में एक। मेरे पास " मंच " नाम का कस्टम बिल्ड संस्करण है और जब भी मैं एक हस्ताक्षरित APK बनाने की कोशिश कर रहा हूं, यह हमेशा विफल रहता है। मुझे लगता है कि अभी तक कोई समाधान नहीं है। कृपया इस मुद्दे पर मेरी मदद करें। धन्यवाद

अपडेट: इन निम्नलिखित संदेशों के साथ भी यही समस्या हो सकती है (जैसा कि मैंने इसे एएस - 3.6.1 में पाया )। तो इस तरह के अज्ञात और resolvable संदेशों के बारे में चिंता मत करो। अब तक मुझे हस्ताक्षरित जनरेट करते समय दो नए प्रकार के संदेश मिले:

  • Entry name 'kotlin/collections/MapWithDefault.kotlin_metadata' collided
  • Access Denied

समाधान एक ही है। कभी-कभी आपको इसके लिए Invalidate Cache and Restartअपने AS की आवश्यकता हो सकती है । मुझे अपने निष्कर्षों को बताएं। धन्यवाद

जवाबों:


16

नीचे दिए गए समाधान को पढ़ने से पहले, कृपया मेरे अपडेट को 01.04.2020 से पढ़ें, समस्या गहरी है और यह आपके कोड में है।

इस 3.6 अपडेट के बाद मुझे भी यही समस्या हुई है।

* उपवास समाधान है: *

  1. ProjectFolder \ build हटाएं
  2. हटाएं ProjectFolder \ debug *
  3. हटाएं ProjectFolder \ रिलीज़ *
  4. ProjectFolder \ app \ build हटाएं
  5. हटाएं
  6. प्रॉजेक्ट को हटाएं \ app \ build \ रिलीज़ *

इसलिए आपको बिल्ड, डीबग और रिलीज़ निर्देशिका के सभी को हटाने की आवश्यकता है।

ध्यान दें कि आप संपूर्ण डीबग और रिलीज़ निर्देशिका को हटाने में सक्षम नहीं हो सकते हैं , लेकिन आप यह सभी सामग्री हटा सकते हैं।

युपीडी:

मुझे लगता है कि उन्होंने आज इस बग को ठीक कर दिया है: यहाँ छवि विवरण दर्ज करें

UPD 03.03.2020: Unfortunatelly, बग निश्चित नहीं है।

UPD 01.04.2020: (पहली अप्रैल मजाक नहीं) :)

महीने के बाद से मैंने एंड्रॉइड स्टूडियो डेवलपर्स के साथ काम किया और आज मुझे jrek का उपयोग करने के बजाय jdk का उपयोग करने के लिए कहा गया, क्योंकि लॉग इन में गहरी त्रुटियों में से एक।

Jdk सेट करने के बाद ( File-> Project Structure-> SDK Location-> JDK Location ) jre के बजाय, मुझे कुछ और त्रुटियां मिली हैं, जो "बिल्ड आउटपुट" में नहीं दिखाई गई थीं, इसलिए मैं विश्लेषण चलाता हूं -> कोड का निरीक्षण करें और ETETEEN त्रुटियाँ प्राप्त करें जैसे लेआउट में गलत दृश्य आईडी का उल्लेख, अभिविन्यास के साथ त्रुटि (हाय tools:ignore="MissingDefaultResource") और अभिविन्यास में भी त्रुटि: मैंने पढ़ा है कि यह 3.6.1 में कुछ नया अपडेट है - परिदृश्य या चित्र के बारे में screenOrientation, इसके साथ स्टूडियो द्वारा निर्धारित तेजी: <activity tools:ignore="LockedOrientationActivity" />

जब सभी त्रुटियों का विश्लेषण -> निरीक्षण कोड के साथ तय किया गया था, तो मैंने सफलतापूर्वक jdk का उपयोग करके और फिर jre (केवल परीक्षण के लिए) का उपयोग कर एपीके साइन किया है।

तो संक्षेप में, यह बग गहरी त्रुटियों के कारण होता है जिसे आप केवल Inspect Codeउपकरण के साथ ही पता लगा सकते हैं ।

मुझे लगता है कि एएस यह नहीं सोचेगा कि यह एक बग है, मुझे लगता है कि उन्होंने कहा कि यह आपके कोड को बेहतर बनाने के लिए एक नई सुविधा है। इसके अलावा, मुझे लगता है कि आपको jre की बजाय jdk को सेट किए बिना भी अपने कोड का निरीक्षण करने की कोशिश करनी चाहिए।

एएस समर्थन से अतिरिक्त सिफारिश:

releaseबिल्ड का निर्यात करते समय BTW , हम भी चलाते हैं lintVitalजो कुछ अतिरिक्त जांच करता है और कुछ त्रुटियों के रूप में चिह्नित किया गया है fatal। यह चेक महंगा है इसलिए debugबिल्ड में ऐसा नहीं होता है


1
बहुत बहुत धन्यवाद। मैंने इसका हल पहले ही निकाल लिया है। क्या आप सुनिश्चित हैं कि यह एक स्थिर संस्करण है (वास्तव में)?
सआदत

1
@ सआदत नहीं, मैंने अभी जाँच की है - बग अभी भी वहाँ है।
दिन

बहुत बहुत धन्यवाद। मैं फिक्सिंग की उम्मीद के साथ फिर से अपडेट करने जा रहा था। @ दान्यापद
सादत

मुझे लगता है कि मुझे projectFolder\app\[all flavor folders]भी हटाना होगा ।
ड्राम्ब्रेवर

1
धन्यवाद, Build > Rebuild Projectएंड्रॉइड स्टूडियो 3.6.2 में मेरे लिए इसे तय किया गया।
gregn3

7

एपीके जनरेट करते समय, डेस्टिनेशन फोल्डर की जांच करें, जिसमें डीबग फोल्डर से आउटपुट.जसन और ऐप-डीबग.पेक को हटा दें। इसके बाद ही निर्माण का प्रयास करें। AFAIK, यह एंड्रॉइड स्टूडियो के लिए एक बग है, आशा है कि वे जल्द ही इसे ठीक कर सकते हैं :)


1
आपके प्रतिक्रिया के लिए धन्येवाद। मैंने पहले ही ऐसा ही किया और अपने मुद्दे को हल किया। :)
सादत

1
बहुत बहुत धन्यवाद!! इसे 2.5 घंटे के संघर्ष के बाद मिला
किश्त वरिया

इसके लिए धन्यवाद, एक आकर्षण की तरह काम किया
ब्रायन

4

मैंने एपीके फ़ाइल सहित, वेरिएंट के निर्माण के लिए पिछले बिल्ड आउटपुट को हटा दिया। यही मेरी मदद करता है


1
मैंने buildएक पूरे के रूप में निर्देशिका को हटाने की कोशिश की , फिर भी वही मुद्दा मिला। क्या आप विस्तार से बता सकते हैं कि आपने क्या किया?
पुष्परज

क्या आप प्रोजेक्ट और ऐप / बिल्ड डायरेक्टरी के रूट में बिल्ड डायरेक्टरी को हटा रहे हैं? मेरे प्रोजेक्ट में एपीके का आउटपुट पथ बदल गया है और मैं पिछली एपीके फ़ाइल को हटा देता हूं जहां यह स्थित थी।
व्लादिस्लाव वत्रुस्किन

1

यह तब होता है जब आपने ऑटो व्यूबाइंडिंग का उपयोग किया था, कोटलिन का उपयोग करके बाइंडिंग या 3.6 की व्यूबाइंडिंग सुविधा का उपयोग किया था।

मामले में, आप उन फ़ाइलों को जोड़ रहे हैं जिनके तत्व समान आईडी साझा करते हैं, ViewBinding भ्रमित करते हैं और ऐसी त्रुटि बनाते हैं।

मुझे उदाहरण के लिए एडॉप्टर क्लास की मदद करें, जिसमें दो लेआउट फ़ाइल हैं जो देखने के अनुसार अलग हैं:

import kotlinx.android.synthetic.main.frag_subscription_recommend.view.*


override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
   return ViewHolder(
        LayoutInflater.from(parent.context).inflate(
            if (viewType == 1) {
                R.layout.frag_subscription_recommend
            } else
                R.layout.frag_subscription_common,
            parent,
            false
        )
    )
}

onBinding(){
  holder.itemView.id_button_submit.setOnClickListener {}
}

// कौन सा संसाधन या लेआउट पूर्ण होने की स्थिति में आवश्यकता होती है bcoz दोनों में एक ही आईडी बटन होता है। यदि आपको उपयोग करना है तो:

 onBinding(){
  holder.itemView.findViewById<Button>(R.id.id_button_submit).setOnClickListener {}
}

जो पुराने कार्यान्वयन को सक्षम करता है।

मुझे पता है अगर यह आपकी तरफ से काम कर रहा है?


1
क्षमा करें, लेकिन समस्या बिल्ड, डीबग और रिलीज़ निर्देशिका के साथ थी। आउटपुट json फ़ाइल सहित। वैसे भी, आपके उत्तर के लिए धन्यवाद
Saadat

1

एंड्रॉइड स्टूडियो को अपडेट करने के बाद मेरे पास एक ही त्रुटि थी और मैं केवल प्रोजेक्ट (बिल्ड> क्लीन प्रोजेक्ट) की सफाई करके समस्या को ठीक करता हूं! :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.