एंड्रॉइड स्टूडियो ग्रैड आइकन त्रुटि, मेनिफेस्ट मर्जर


141

मैं इस संदेश को देखता रहता हूं और यह सुनिश्चित नहीं करता कि इसे अच्छे के लिए कैसे हल किया जाए।

Error:(43, 9) Attribute application@icon value=(@drawable/new_app_icon) from AndroidManifest.xml:43:9
    is also present at com.github.erizet.signala:signala-longpolling:0.20:7:18 value=(@drawable/ic_launcher)
    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:40:5 to override
:OpenBook:processDebugManifest FAILED
Error:Execution failed for task ':OpenBook:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

android:replace="android:icon"मेरे आइकन के साथ भी मेरी उपस्थिति को जोड़ने की कोशिश की ।

मैंने android:icon="@drawable/ic_launcherलाइब्रेरी से हटाने की कोशिश की, लेकिन जब मैं निर्माण करता हूं तो यह वापस आता रहता है क्योंकि इसका आयात मावेन से किया जाता है

कोई विचार ?


यह समस्या तब होती है जब प्रकट फ़ाइल टैग में समस्या होती है। कृपया उत्तर की जांच करें stackoverflow.com/a/39509659/2732632
किम्मी ढींगरा

मुझे उसी समस्या का सामना करना पड़ा जब मैंने प्रकट में डुप्लिकेट अनुमतियाँ जोड़ीं।
Cloy

जवाबों:


342

ऐसा लगता है कि ग्रेडेल के लिए सबसे मुख्य विलय उपकरण की गलती है।

http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

इसे मेरे मैनिफ़ेस्ट टैग में जोड़कर हल किया xmlns:tools="http://schemas.android.com/tools"

फिर tools:replace="android:icon,android:theme"एप्लिकेशन टैग में जोड़ा गया

यह विलय को मेरे मैनिफ़ेस्ट आइकन और थीम का उपयोग करने के लिए कहता है न कि अन्य पुस्तकालयों के लिए

आशा है कि यह धन्यवाद में मदद करता है


6
समस्या अभी भी मेरे लिए बनी हुई है। एंड्रॉइड स्टूडियो में काम करना 1.1।
बोलिंग

1
धन्यवाद! मेरे लिए काम किया
संदीप

4
Android 2.0 के नवीनतम संस्करण। काम नहीं कर रहा। जिसने उत्तर दिया उसे इस क्यू को अपडेट करना चाहिए अगर उसका मतलब है कि वह पीढ़ियों की बचत कर रहा है तो यह जल्द ही बेकार हो जाएगा
कार्यू बेन्सन कार्यू

3
स्टूडियो 2.2 आज से यह सब कर रहा है और इस मुद्दे पर काम कर रहा है
प्रसाद

2
एंड्रॉइड स्टूडियो 2.2 के लिए काम नहीं कर रहा है, जिसमें 2.2.0 ग्रेड है।
DysaniazzZ

54

मेरे पास एक ही मुद्दा है, मैं इसे xmlns:tools="http://schemas.android.com/tools"मुख्य फाइल के शीर्ष पर जोड़कर इसे ठीक करता हूं , और tools:replace="android:icon"जैसा दिखता हूं वैसा ही जोड़ देता हूं

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"  // add tools line here 
    package="yourpackage">


    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:icon"> ///add this line 

.....

</application>

</manifest>

1
एंड्रॉइड स्टूडियो 2.2 और ग्रेडेल 2.2.0 के लिए काम नहीं कर रहा है।
DysaniazzZ

शानदार उत्तर
गुंडू बंडगर

10

मेरे पास एक ही त्रुटि है, बस यह कोड मेरी समस्या को हल करता है, मैं आपके साथ साझा करना चाहता हूं:

में Manifest.xml:

  • इस कोड को अपनी xml फ़ाइल के शीर्ष पर जोड़ें:

    xmlns:tools="http://schemas.android.com/tools"

  • फिर जोड़ा गया:

    tools:replace="android:icon,android:theme,android:label,android:name" आवेदन टैग के लिए


@DysaniazzZ, यह एंड्रॉइड स्टूडियो पर निर्भर नहीं है। संदेश लॉग देखें।
अदनान अब्दुल्ला ज़की

ठीक है, मैं देख लूंगा।
DysaniazzZ

@Funwise, अपने संदेश लॉग की जांच करें, मुझे लगता है कि यह एंड्रॉइड स्टूडियो पर निर्भर नहीं है।
अदनान अब्दुल्ला

@ adnan9011, मेरी समस्या मैनिफ़ेस्ट फ़ाइल में डुप्लिकेट अनुमतियाँ थी।
दारुश

9

Shimi_tap का उत्तर पर्याप्त है। क्या याद रखना है कि केवल वही चुनें जो आपको चाहिए। {आइकन, नाम, थीम, लेबल} से चुनें। मैंने जोड़ा tools:replace="android:icon,android:theme", यह काम नहीं करता। मैंने जोड़ा tools:replace="android:icon,android:theme,android:label,android:name", यह काम नहीं करता। यह काम करता है जब मैंने जोड़ा tools:replace="android:icon,android:theme,android:label"। तो पता करें कि आपके मैनिफ़ेस्ट फ़ाइलों में वास्तव में क्या विरोध है।


1
एंड्रॉइड स्टूडियो 2.2 और ग्रेडेल 2.2.0 के लिए काम नहीं कर रहा है।
DysaniazzZ

5

बस xmlns:tools="http://schemas.android.com/tools"अपने प्रकट टैग में जोड़ें , और फिर आपको tools:replace="android:icon" पहले जोड़ने की आवश्यकता है android:icon="@mipmap/ic_launcher"


3

यह त्रुटि तब भी होती है जब आपके ऐप का मिन्सकॉक किसी भी लाइब्रेरी के मिन्सडक से अधिक होता है।

app's minSdk >= libraries minSdk

1
तो समाधान क्या है?
itzhar

2

समय बताने के साथ ही समाधान प्राप्त करें

बस अपना ic_launcher प्राप्त करें और इसे अपने ड्राबेल फ़ोल्डर में पेस्ट करें,

अपने मैनिफ़ेस्ट में जाएँ और android बदलें: icon = "@ drawable / ic_launcher"

अपने प्रोजेक्ट को साफ़ करें और पुनर्निर्माण करें

आशा है कि यह आपकी मदद करता है


2

मेरे पास यह समस्या थी कि आइकॉन को ड्रायबल से मिपमप में बदलना।

मैंने केवल रेखा को याद किया

tools:replace="android:icon"

प्रकट में।


1

किसी कारण से एंड्रॉइड स्टूडियो को ड्रॉ करने योग्य फ़ोल्डर से ऐप आइकन को कॉल करना पसंद नहीं है। तो उस स्थिति में मैंने res फ़ोल्डर के तहत mipmap रिसोर्स डायरेक्टरी बनाई।

राइट क्लिक रिस फोल्डर> नया> एंड्रॉइड रिसोर्स डायरेक्टरी> रिसोर्स टाइप: mipmap और अब किसी भी आइकॉन को ड्रॉप करें फिर रेफरेंस फाइल में। इस विधि के बाद से इसे साझा करना मेरे लिए काम कर गया।

एंड्रॉयड: आइकन: @ drawable / ic_launcher "

सेवा

एंड्रॉयड: आइकन = "@ मिपमैप / ic_launcher"


मेरे लिए शैली सेट करना सबसे अच्छा लग रहा था android:theme="@style/AppTheme" -> gist.github.com/CrandellWS/4d284b11b5bca3054bddf8f511e49ae9
CrandellWS

1

यदि उस काम में से कुछ भी नहीं है, तो एंड्रॉइड स्टूडियो बंद करें। ऐप / src / main पर जाएं, एक टेक्स्ट एडिटर में फ़ाइल AndroidManifest.xml खोलें (उदात्त की तरह), इरोज़ लाइनों को हटाएं / बदलें, एंड्रॉइड स्टूडियो को सहेजें और फिर से खोलें।


1

जब एक विशेषता मान में एक प्लेसहोल्डर होता है (नीचे प्रारूप देखें), मेनिफ़ेस्ट विलय इस प्लेसहोल्डर मान को एक इंजेक्शन मूल्य के साथ स्वैप करेगा। इंजेक्शन मान build.gradle में निर्दिष्ट हैं। प्लेसहोल्डर मानों के लिए सिंटैक्स $ {name} है क्योंकि @ लिंक के लिए आरक्षित है। अंतिम फ़ाइल मर्ज होने के बाद, और इससे पहले कि मर्ज किए गए एंड्रॉइड मैनिफ़ेस्ट फ़ाइल को बाहर लिखा जाता है, प्लेसहोल्डर के साथ सभी मानों को इंजेक्ट किए गए मानों के साथ स्वैप किया जाएगा। यदि वैरिएबल नाम अज्ञात है, तो एक बिल्ड ब्रेक उत्पन्न होगा।

से http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Build-error


0

शिमी_टैप का जवाब समस्या को ठीक करने का सही तरीका है। यदि आप पुराने विलय उपकरण का उपयोग करना चाहते हैं, तो आप इसे build.gradle फ़ाइल में जोड़ सकते हैं

Android {useOldManifestMerger true}


2
"1.0 में, हमने पुराने मेनिफेस्ट मर्जर को इनवॉइस
devgrg

पद्धति का उपयोग नहीं किया जा सका ।OldManifestMerger () तर्कों के लिए [सत्य] प्रोजेक्ट पर ': app' प्रकार की। org.gradle.api.Project।
DysaniazzZ

0

मेरे लिए, Google Play सेवाएँ अपडेट करने के बाद यह समस्या हुई। मेरे द्वारा उपयोग किए जा रहे पुस्तकालयों में से एक में "+" का उपयोग करके इस पुस्तकालय को अपने क्रमिक संदर्भ में शामिल किया गया था, जैसे

compile 'com.google.android.gms:play-services:+'

इससे एक समस्या पैदा हुई क्योंकि उस लाइब्रेरी द्वारा लक्षित न्यूनतम संस्करण Google Play Services के वर्तमान संस्करण द्वारा लक्षित लक्ष्य से कम था। मुझे यह केवल लॉग में देखकर मिला।


0

.gradleउदाहरण के लिए, आपके परिवर्तन में MinSDK:

  • build.gradle (मॉड्यूल: ऐप)
    • इससे पहले: minSdkVersion 9
    • उपरांत: minSdkVersion 14

आदि।


0

मैंने ऊपर वर्णित सभी समाधान की कोशिश की

में Manifest.xml:

  • इस कोड को प्रकट टैग के भीतर अपनी xml फ़ाइल के शीर्ष पर जोड़ें:

    xmlns:tools="http://schemas.android.com/tools"

  • फिर जोड़ा गया:

    tools:replace="android:icon,android:theme,android:label,android:name" आवेदन टैग के लिए

लेकिन इसमें से कोई भी काम नहीं किया। मुझे एक xml फ़ाइल को हटाने की आवश्यकता थी जो अंदर स्थित थी

मिपमैप-anydpi-v26 / ic_launcher_round.xml

में आवेदन का परीक्षण कर रहा था

ओएस संस्करण 8.0.0 के साथ सैमसंग गैलेक्सी 8

क्या यह वास्तव में एक समाधान है?


0

AndroidManifest.xml फ़ाइल में, निम्नांकित को applicationनोड में जोड़ें :

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.