मैनिफेस्ट मर्जर एंड्रॉइड स्टूडियो में कई त्रुटियों के साथ विफल रहा


250

तो, मैं एंड्रॉइड और जावा में शुरुआती हूं। मैंने अभी सीखना शुरू किया। जब मैं आज इंटेंट के साथ प्रयोग कर रहा था , मैंने एक त्रुटि की।

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

मैंने यहां कुछ समाधान ढूंढे और उन्हें लागू करने की कोशिश की, लेकिन यह कारगर नहीं हुआ।

यह मेरा build.gradle है:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.0"

defaultConfig {
    applicationId "com.example.rohan.petadoptionthing"
    minSdkVersion 10
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
}

यह मेरा AndroidManifest है:

<?xml version="1.0" encoding="utf-8"?>

package="com.example.rohan.petadoptionthing" >

<application

    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".Second"
        />

    <activity android:name=".third"/>
    <activity android:name=".MainActivity"/>


</application>

कोडिंग के साथ यह मेरा पहला सप्ताह है, मुझे खेद है कि यह वास्तव में मूर्खतापूर्ण बात है। मैं वास्तव में इसके लिए नया हूं और पूछने के लिए कोई अन्य जगह नहीं मिली। क्षमा करें यदि मैंने कोई नियम तोड़ा है


2
निकालें लाइन <गतिविधि Android: नाम = "MainActivity।" /> अपने menifest.xml फ़ाइल में
पंकज Talaviya

10
त्रुटि के बारे में विस्तृत जानकारी के लिए आप निचले दाएं कोने पर एंड्रॉइड स्टूडियो में ग्रैडल कंसोल की जांच कर सकते हैं।
ड्रैगनट

मुझे उम्मीद है कि यह लिंक उपयोगी होगा।
मोर्ट्रेज़ा ईस्वी सन्

मुझे वही त्रुटि मिली। लेकिन प्रोजेक्ट और लाइब्रेरी में समान न्यूनतम एसडीके रखकर इसे हल किया गया।
राजा जवाहर

youtu.be/K88WaSm3q8Y "मैनिफेस्ट मर्जर एंड्रॉइड स्टूडियो में कई त्रुटियों के साथ विफल हुआ"?
रोमन पोक्रोव्स्कीज

जवाबों:


966

आवेदन प्रकट खोलें ( AndroidManifest.xml) और पर क्लिक करें Merged Manifestनीचे दी गई छवि देखें:

android-प्रकट मर्ज सुविधा

छवि से आप सही कॉलम में त्रुटि देख सकते हैं, त्रुटि को हल करने का प्रयास कर सकते हैं । यह एक ही समस्या के साथ कुछ मदद कर सकता है। और अधिक पढ़ें यहाँ


5
शानदार ... मेरे थैंक्यू को व्यक्त करने के लिए शब्द नहीं मिल सकते
शहजाद अफरीदी

2
मेरे मामले में मैंने त्रुटियों को देखने के लिए इसे थोड़ा नीचे स्क्रॉल किया
कोडटॉइल

दुर्भाग्य से, एंड्रॉइड स्टूडियो 3.5.2 में कोई "मर्ज किए गए मैनिफेस्ट" टैब नहीं है।
फ्रैक्टलबॉच

@ फ्रैक्टबल्ब मैं 3.5.2 पर चल रहा हूं और 'मर्ज किए गए मैनिफेस्ट' टैब को देख रहा हूं..आपमें कुछ अन्य त्रुटि हैं जो प्रकट होने से पहले हो रही हैं।
sonyisda1

@ sonyisda1 क्या आप लिनक्स के वातावरण में चल रहे हैं? मेरे पास Ubuntu 18.04 LTS है।
फ्रैक्टलबॉच

120

<activity android:name=".MainActivity"/>अपनी मुख्य फ़ाइल से निकालें । जैसा कि आप पहले से ही इसे परिभाषित कर चुके हैं:

 <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

तो, अस्पष्टता दिखाते हुए मैनिफ़ेस्ट फ़ाइल।


31
यह बहुत बुरा है कि यह स्वीकृत उत्तर है, जब यह केवल रोवन के कोड को ठीक करता है, लेकिन किसी और के लिए पूरी तरह से अनपेक्षित है। CLIFFORD का उत्तर वास्तव में आपको दिखाता है कि त्रुटि संदेश के रूप में "लॉग देखें"।
एंड्रयू कोस्टर

यह केवल बहुत अच्छी तरह से काम करता है और AndroidManifest.xml फ़ाइल में किसी भी डुप्लिकेट प्रविष्टि को हटा दें।
vishwajit76

61

मेरे लिए यह काम करता है -

में विलय त्रुटियों का पता लगाना AndroidManifest.xml

यहां छवि विवरण दर्ज करें

इसमें Merged Manifest पर क्लिक करें AndroidManifest.xml

यहां छवि विवरण दर्ज करें

आप सही स्तंभ में प्रकट विलय त्रुटि देख सकते हैं। यह इस समस्या को हल करने में मदद कर सकता है।


3
यह इस समस्या के लिए एक सामान्य समाधान है। इससे आपको किसी भी समस्या के वास्तविक कारण का पता लगाने में मदद मिलती है।
जोआलिंड

60

मैं भी इसी तरह के मुद्दों का सामना कर रहा था, और बहुत शोध के बाद समाधान मिला:

  1. आपका न्यूनतम sdk संस्करण आपके द्वारा उपयोग किए जा रहे मॉड्यूल के समान होना चाहिए: आपका मॉड्यूल min sdk संस्करण 14 है और आपका ऐप न्यूनतम sdk संस्करण 9 है। यह समान होना चाहिए।
  2. यदि आपके ऐप और मॉड्यूल के संस्करण एक जैसे नहीं हैं। फिर से वही होना चाहिए ** संक्षेप में, आपकी ऐप build.gradleफ़ाइल और मेनिफ़ेस्ट में समान कॉन्फ़िगरेशन होना चाहिए **
  3. प्रकट फ़ाइल में दो बार समान अनुमतियों की तरह कोई दोहराव नहीं है, एक ही गतिविधि का दो बार उल्लेख किया गया है।
  4. यदि आपने अपनी परियोजना से कोई गतिविधि हटा दी है, तो उसे अपनी प्रकट फ़ाइल से भी हटा दें।
  5. कभी-कभी इसकी वजह से लेबल, आइकन आदि प्रकट फ़ाइल का टैग होता है:

a) xmlns:toolsमैनिफ़ेस्ट टैग में लाइन जोड़ें ।

बी) एप्लिकेशन टैग में जोड़ें tools:replace=या tools:ignore=

उदाहरण:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.slinfy.ikharelimiteduk"
    xmlns:tools="http://schemas.android.com/tools"
    android:versionCode="1"
    android:versionName="1.0" >

  <application
      tools:replace="icon, label"
      android:label="myApp"
      android:name="com.example.MyApplication"
      android:allowBackup="true"
      android:hardwareAccelerated="false"
      android:icon="@drawable/ic_launcher"
      android:theme="@style/Theme.AppCompat" >
  </application>

</manifest>
  1. यदि दो निर्भरताएं एक ही संस्करण के उदाहरण नहीं हैं: आप निर्भरता का उपयोग कर रहे हैं appcompat v7: 26.0.0 के लिए और फेसबुक के लिए com.facebook.android:facebook-android-sdk: [.4,5) फेसबुक संस्करण com.android के कार्डव्यू का उपयोग करता है। समर्थन: cardview-v7: 25.3.1 और appcompat v7: 26.0.0 संस्करण v7 के कार्डव्यू का उपयोग करता है: 26.0.0, इसलिए दो पुस्तकालयों में असमानता है और इस प्रकार त्रुटि देते हैं

त्रुटि: कार्य के लिए निष्पादन विफल रहा ': app: processDebugManifest'।

मैनिफ़ेस्ट विलय विफल रहा: [com.android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml: 27: 9: से meta-data#android.support.VERSION@value मान = (26.0.0-अल्फ़ा 1) प्राप्त करें। -38 [com.android.support:cardview-v7:25.3.1] AndroidManifest.xml: 24: 9-31 मान = (25.3.1) पर भी मौजूद है। सुझाव: AndroidManifest.xml में तत्व के लिए 'टूल्स: रिप्लेस = "एंड्रॉइड: वैल्यू" जोड़ें: 25: 5-27: 41 ओवरराइड करें।

इसलिए संस्करण 25.3.1 के एपकॉम का उपयोग करके, हम इस त्रुटि से बच सकते हैं

उपरोक्त बिंदुओं को ध्यान में रखकर, आप इस परेशान करने वाले मुद्दे से छुटकारा पा लेंगे। आप मेरे ब्लॉग को https://wordpress.com/post/dhingrakimmi.wordpress.com/23 पर भी देख सकते हैं


1
मेरे मामले में यह मॉड्यूल के विषय के कारण था जिसे मैंने जोड़ा था इसलिए मैंने उपकरण के रूप में उपयोग किया: "आइकन, लेबल, थीम" को बदल दें
टर्बोएन्ड्रोइड

मेरे मामले में यह मॉड्यूल के विषय के कारण था जिसे मैंने जोड़ा था इसलिए मैंने टूल के रूप में उपयोग किया: "आइकन, लेबल, थीम" और xmlns: tools = " schemas.android.com/tools " को प्रतिस्थापित करें । धन्यवाद @ ओयोन
alfo888_ibg

14

उपलब्ध समाधानों के अलावा, कृपया इसे भी देखें।
यदि आपने अपने में निर्धारित android:allowBackup="false"किया है, AndroidManifest.xmlतो android:allowBackup="true"अन्य निर्भरता के लिए संघर्ष हो सकता है ।

समाधान
जैसा कि @CLIFFORD PY द्वारा सुझाया गया है, Merged Manifestअपने में स्विच करें AndroidManifest.xml। एंड्रॉयड स्टूडियो जोड़ने के लिए सुझाव देगा tools:replace="android:allowBackup"में <application />अपने में AndroidManifest.xml


12

मैं उसी समस्या का सामना कर रहा था और मैंने अपने घोषणापत्र में सिर्फ एक पंक्ति जोड़ी है। यह मेरे लिए काम करती है।

tools:replace="android:allowBackup,icon,theme,label,name"> 

के तहत इस लाइन जोड़ें

<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:screenOrientation="portrait"
    android:supportsRtl="true"
    android:theme="@style/AppThemecustom"
    tools:replace="android:allowBackup,icon,theme,label">

आशा है कि यह मदद करेगा।


आपको बहुत - बहुत धन्यवाद! Zendesk सपोर्ट पेज की वजह से एक बहुत ही विशिष्ट परिदृश्य में मुझे इस समस्या का सामना करना पड़ रहा था, जब "अटैच फाइल" पर क्लिक किया गया। विभिन्न सवालों के इतने जवाब देने की कोशिश की और केवल आपकी टिप्पणी से मदद मिली!
नेटली


11

बस अपने प्रोजेक्ट मैनिफ़ेस्ट एप्लिकेशन टैग में नीचे कोड जोड़ें ...

<application
        tools:node="replace">

बहुत बहुत धन्यवाद
तेज शाह

8

मेरे मामले में यह एक त्रुटि दिखा रहा था क्योंकि <uses-permission>तत्व में अतिरेक था । तो, कृपया AndroidManifest.xmlउसी के लिए अपनी फ़ाइल में जांचें ।

एंड्रॉइड स्टूडियो वर्जन 3.0.1 है

ऑपरेटिंग सिस्टम विंडोज 7 है

यहाँ संदर्भ के लिए स्क्रीनशॉट है।

स्क्रीन-शॉट जो प्रकट फ़ाइल में अतिरेक दिखाता है।


जबकि यह @ CLIFFORD-PY के उत्तर से पहले पोस्ट किया गया था, मर्ज किए गए मैनिफ़ेस्ट दृश्य के माध्यम से विलय त्रुटियों को खोजने से यह विशेष अनावश्यक त्रुटि पकड़ लेगी।
sonyisda1


7

आमतौर पर तब होता है जब आपके सामने आपकी त्रुटियां होती हैं। Android के AndroidManifest.xml पर क्लिक करें। मर्ज किए गए प्रकट टैब पर क्लिक करें। त्रुटियों को वहां देखा जा सकता है। इसके अलावा इसमें दिए गए सुझाव भी शामिल हैं। जब मुझे com.google.android.gms आयात करते समय एक समान समस्या थी। .maps.model.LatLng, इसने मुझे एप्लिकेशन टैग में टूल: ओवरराइडलाइंस = "com.google.android.gms.maps" शामिल करने का सुझाव दिया और बिल्ड सफल रहा।


3

मेरा मामला मैंने इसे तय कर दिया है

build.gradle (मॉड्यूल: एप्लिकेशन)

defaultConfig {
----------
multiDexEnabled true
}
dependencies {
    ...........
    implementation 'com.google.android.gms:play-services-gcm:11.0.2'
    implementation 'com.onesignal:OneSignal:3.+@aar'
    }

यह जवाब ऑनसिग्नल पुश नोटिफिकेशन के अनुसार दिया गया


2
  1. इन AndroidManifest.xml:

    • आवेदन में, जोड़ें tools:replace="android:icon, android:themeऔर
    • मेनिफेस्ट रूट पर, जोड़ें xmlns:tools="http://schemas.android.com/tools
  2. इन build.gradle:

    • मूल में, जोड़ें useOldManifestMerger true

2

Minium sdk संस्करण मॉड्यूल / lib के समान होना चाहिए जिसका आप उपयोग कर रहे हैं। उदाहरण के लिए: आपका मॉड्यूल min sdk संस्करण 26 है और आपका app min sdk संस्करण 21 है यह समान होना चाहिए।


1

पिछले कुछ दिनों से मैं भी इसी मुद्दे से गुजर रहा था। लेकिन बाद में, बहुत सारे शोध मैंने आखिरकार इसके लिए एक समाधान पाया।
इस समस्या को हल करने के लिए, आपको क्या करने की आवश्यकता है:
1. जांचें कि क्या आपकी परियोजना की बिल्ड.ग्रेड फ़ाइल और मॉड्यूल की बिल्ड.ग्रेड फ़ाइल में सभी निर्भरता के समान संस्करण हैं।
2. सुनिश्चित करें, अपने प्रोजेक्ट की compileSdkVersion , buildToolsVersion , minSdkVersion और targetSdkVersion में से मेल खाता मॉड्यूल या पुस्तकालयों कि आप परियोजना में शामिल किया है।

compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
    applicationId "com.example.appname"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 22
    versionName "2.0.3"

}

उम्मीद है की यह मदद करेगा।


1

यदि आप Android लाइब्रेरी मॉड्यूल जोड़ने के बाद और आपको यह त्रुटि मिलती है।
आप इसे अपने एंड्रॉइड लाइब्रेरी मॉड्यूलandroid:label="@string/app_name" से सरल हटाने के द्वारा ठीक कर सकते हैंAndroidManifest.xml


1

अपना gradle कंसोल खोलें, फिर आपको gradle दिखाई देती है जो आपको विशेष लाइन जोड़ने का सुझाव देती है (जैसे: टूल्स: रिप्लेस = "android: allowBackup" या टूल्स: रिप्लेस = "android: लेबल" आदि)। टैग और सिंक सिंक के तहत अपनी मैनिफ़ेस्ट फ़ाइल में वह लाइन जोड़ें, बस।


1

मेरे मामले में यह गतिविधि टैग के अंदर कुछ खाली इरादे-फ़िल्टर छोड़ने के लिए हुआ

    <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">

            <intent-filter>

            </intent-filter>

    </activity> 

तो बस उन्हें हटाने से समस्या हल हो गई।

    <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
    </activity> 

0

एंड्रॉइड स्टूडियो के लिए एक नौसिखिया के रूप में, मेरे मामले में, मैंने एक्लिप्स से एंड्रॉइड स्टूडियो में एक मौजूदा परियोजना को स्थानांतरित किया था और पाया कि मेरे मैनिफेस्ट.एक्सएमएल के भीतर एक गतिविधि की डुप्लिकेट परिभाषा थी जिसे ग्रहण द्वारा नहीं उठाया गया था जैसा कि दिखाया गया था। एक ग्रेडल त्रुटि।

मुझे यह ग्रैडल कंसोल (स्क्रीन के नीचे दाईं ओर) पर जाकर मिला।


0

मेरे साथ दो बार हुआ जब मैंने अपवर्तक (हमारी फ़ाइलों में एक फ़ील्ड का नाम SHIFT + F6 के साथ नाम बदला) और यह आपको हर जगह इसे बदलने के लिए कहता है और हम ध्यान दिए बिना हर जगह नाम बदलते हैं। उदाहरण के लिए, यदि आपके जावा वर्ग में एक चर नाम "आईडी" है और आप इसका नाम SHIFT + F6 के साथ रखते हैं। यदि आप अगले संवाद पर ध्यान नहीं देते हैं जो आपसे पूछेगा कि यह आईडी बदलने के लिए और कहीं भी है और आप सभी की जांच करते हैं तो यह आपके नए लेआउट से सभी लेआउट को बदल देगा।


0

यह बहुत ही सरल त्रुटि है जब आप किसी भी गतिविधि को दो बार mainifest.xml फ़ाइल उदाहरण में परिभाषित करते हैं

<activity android:name="com.futuretech.mpboardexam.Game" ></activity>

//and launcher also------like that



//solution:use only one 

0

इसे अपने एप्लिकेशन मॉड्यूल build.gradle के अंत में रखें:

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '25.3.0'
        }
    }
}}

इस से


0

उत्तर फन वान लिन्ह को पूरक। मैंने इन पंक्तियों को हटा दिया:

  android:icon="@mipmap/ic_launcher"
  android:label="name"

0

बस Androidx पर माइग्रेट करें जैसा कि ऊपर दिखाया गया है और फिर तेह न्यूनतम sdk संस्करण को 26 पर सेट करें ... इसमें कोई संदेह नहीं है कि यह पूरी तरह से काम करता है


0

निम्नलिखित हैक काम करता है:

  1. xmlns:tools="http://schemas.android.com/tools"मेनिफेस्ट टैग में लाइन जोड़ें
  2. tools:replace="android:icon,android:theme,android:allowBackup,label,name" एप्लिकेशन टैग में जोड़ें


0

मेरे मामले में मैं जेटब्रेन्स लाइब्रेरी के कुछ एनोटेशन का उपयोग कर रहा था। मैंने उन एनोटेशन और निर्भरता को हटा दिया और इसने ठीक काम किया।

इसलिए कृपया एंड्रॉइड कोड और निर्भरता में पुस्तकालयों की सावधानीपूर्वक जांच करें।


0

यदि आप manifestPlaceholderअपनी build.gradleफ़ाइल में कई मदों का उपयोग कर रहे हैं , तो आपको उन्हें अलग-अलग आइटमों के बजाय, सरणी तत्वों के रूप में जोड़ना होगा।

उदाहरण के लिए, यह एक बिल्ड त्रुटि या संकलन त्रुटि का कारण होगा: "java.lang.RuntimeException: कई त्रुटियों के साथ घोषणापत्र विलय विफल":

android {
    ...
    defaultConfig {
        manifestPlaceholders = [myKey1: "myValue1"]
        manifestPlaceholders = [myKey2: "myValue2"] // Error!
    }
}

इससे त्रुटि ठीक हो जाएगी:

android {
    ...
    defaultConfig {
        manifestPlaceholders = [myKey1: "myValue1", myKey2: "myValue2"]
    }
}

0

यह इसलिए है क्योंकि आप विरासत समर्थन लाइब्रेरी के साथ नई सामग्री लाइब्रेरी का उपयोग कर रहे हैं।

उपयोग android.supportकरने के लिए आपको माइग्रेट करना होगा ।androidxcom.google.android.material

यदि आप एंड्रॉइड स्टूडियो वी 3.2 या इसके बाद के संस्करण का उपयोग कर रहे हैं, तो बस

रिफ्लेक्टर पर जाएं ---> MRORATE TO ANDROID X

अपने प्रोजेक्ट का बैकअप बनाएं।


0

मैं FirebaseUI Libraryके साथ प्रयोग कर रहा था Facebook SDK Library, जो मुझे मुद्दा बना रहा था।

implementation 'com.firebaseui:firebase-ui-database:0.4.4'
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'

और [यहां] [1] से, मुझे इस मुद्दे से छुटकारा मिला।

साथ latest updateकी FirebaseUI पुस्तकालय , फेसबुक एसडीके के पिछले संस्करण भी इसे का एक हिस्सा है।

यदि आप दोनों पुस्तकालयों का उपयोग कर रहे हैं , तो कृपया फेसबुक एसडीके लाइब्रेरी को हटा दें

https://github.com/firebase/FirebaseUI-Android/issues/230

अपडेट करें

से Android Studio 3.0और बाद के संस्करण, app.gradleफ़ाइल का उपयोग करने की आवश्यकता है implementationया apiबजाय compileएप्लिकेशन के लिए उनकी निर्भरता को जोड़ने के लिए।


0

त्रुटि को देखने के लिए CLIFFORD के उत्तर को देखने के बाद, इस समस्या को हल करने में मुझे जो मदद मिली, वह था- इरादे-फ़िल्टर एक्शन टैग में 'android: namex' का नाम 'android: name'। मामले में अगर वही समाधान किसी और की मदद करता है।

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:namex="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.