Android: ग्रेडेल के नए संस्करण में अपडेट करने के बाद "मैनिफेस्ट विलय विफल" हो गया


108

परियोजना के अद्यतन के नए संस्करण को स्वीकार करने के बाद मुझे यह त्रुटि मिलती है:

Error:Execution failed for task ':app:processDebugManifest'.
Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0-alpha1) from [com.android.support:cardview-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38
    is also present at [com.android.support:design:25.3.1] AndroidManifest.xml:27:9-31 value=(25.3.1).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:22:5-24:41 to override.

इस समस्या का समाधान किस प्रकार से किया जा सकता है? यह मेरे ऐप की build.gradleफ़ाइल है:

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.sample.bookReader"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    ...
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:multidex:+'
    compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
    compile 'com.android.support:cardview-v7:26.0.0-alpha1'
    compile 'com.android.support:design:25+'
    compile 'com.jakewharton:butterknife:8.2.1'
    apt 'com.jakewharton:butterknife-compiler:8.2.1'
    ...
}

और यह परियोजना की है build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://www.jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ग्रेड संस्करण को अद्यतन करके किए गए परिवर्तनों को बनाए रखते हुए मैं इस त्रुटि को कैसे ठीक करूं?

जवाबों:


212

इसे अपने एप्लिकेशन मॉड्यूल 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'
            }
        }
    }
}

इगेंन पिंचेक को श्रेय


1
अच्छा एक, यह समाधान है कि मेरे लिए काम किया जब मेरे nativescript एप्लिकेशन बनाने है
ded

7
यह मेरे लिए भी काम किया, धन्यवाद @Vishal। क्या आप बता सकते हैं कि यहाँ क्या हो रहा है :)
इस्माइल इकबाल

3
समर्थन लाइब्रेरी के नवीनतम संस्करण का उपयोग करना सुनिश्चित करें, जो यह लिखने के समय है details.useVersion '27.0.0'। अन्यथा आपके पास नवीनतम समर्थन सुविधाएँ नहीं होंगी, जैसे अनावश्यक दृश्य कास्टिंग उन्मूलन।
ड्रू स्ज़ुर्को

9
कृपया इसके बारे में थोड़ा विवरण जोड़ें। इसका काम लेकिन यह अद्यतन संस्करण और सुविधाओं के लिए काम करेगा
घनश्याम नयमा

1
अगर किसी और के पास 'सिंबल डिपेंडेंसीResolveDetails' का समाधान नहीं हो सकता है, तो मैंने 'DependencyResolveDetails' को हटाकर इसे ठीक कर दिया (मैं इसके ग्रूवी के बाद से इसकी आवश्यकता न होने के बारे में StackOverflow पर कहीं पढ़ता हूं, इसलिए यह गतिशील रूप से काम कर सकता है)
knjk04

90

आप Android समर्थन लाइब्रेरी के कई संस्करणों का उपयोग कर रहे हैं:

compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.android.support:cardview-v7:26.0.0-alpha1'
compile 'com.android.support:design:25+'

दो हैं 26.0.0-alpha1, और एक उपयोग कर रहा है 25+

एक ठोस संस्करण चुनें और इसे इन तीनों के लिए उपयोग करें। चूंकि आपका compileSdkVersionनहीं है O, 25.3.1इन तीनों पुस्तकालयों के लिए उपयोग करें , जिसके परिणामस्वरूप:

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:design:25.3.1'

25.3.1समर्थन पुस्तकालयों के लिए उपयोग कर रहे हैं या buildToolsVersion? क्योंकि buildToolsVersionमुझे त्रुटि मिलती हैPackage Unavailable
tux-world

@ tux-world: "समर्थन पुस्तकालयों या buildToolsVersion के लिए 25.3.1 का उपयोग कर रहे हैं?" - समर्थन पुस्तकालयों के लिए। देखिये मेरा अपडेटेड जवाब।
कॉमन्सवेयर

1
मैं परीक्षण करता हूं, लेकिन मेरी समस्या हल नहीं होती है कि कौन सा संस्करण चालू होना चाहिए compileSdkVersion?
tux-world

मुझे यह संदेश मिलाAll com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 26.0.0-alpha1, 25.3.1. Examples include com.android.support:support-compat:26.0.0-alpha1 and com.android.support:animated-vector-drawable:25.3.1
tux-world

1
@ tux-world: अपने में कुछ भी नहीं build.gradleहोना चाहिए 26.0.0-alpha1। अपने प्रोजेक्ट (बिल्ड> क्लीन प्रोजेक्ट) को साफ करने की कोशिश करें और देखें कि क्या समस्या दूर हो गई है। यदि नहीं, तो आपको नीचे ट्रैक करने की आवश्यकता है कि क्या खींच रहा है com.android.support:support-compat:26.0.0-alpha1, जैसे कि ग्रैडल निर्भरता रिपोर्ट चलाकर।
कॉमन्सवेयर

18

मैंने सभी समर्थन लाइब्रेरी संस्करणों को 25.3.1 में बदल दिया और एक आकर्षण की तरह काम किया:

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'

आपको compileSdkVersion और targetSdkVersion को 25 में बदलने की भी आवश्यकता है :

compileSdkVersion 25
targetSdkVersion 25

सहमत हैं, अच्छे से ऊपर के उत्तर, लेकिन त्रुटि का कारण यह है कि आपने अपनी श्रेणी फ़ाइल में अलग-अलग संस्करण निर्धारित किए हैं। बस का उपयोग करें या 26 या 25 समर्थन
एंड्रयू वी।

मेरे मामले में इसकी वजह है minSdkVersion
फल

10

आप यह जान सकते हैं कि लाइब्रेरी समर्थन लाइब्रेरी के गलत संस्करण पर निर्भर करती है और इसे इस तरह से बाहर करती है:

compile ('com.stripe:stripe-android:5.1.1') {
    exclude group: 'com.android.support'
  }

stripe-android मेरे मामले में।


आपको कैसे पता चलेगा?
जैपोनोग्लिका 12

, सूची Gradle कार्य निर्भरता करने की कोशिश @Zapnologica तरह stackoverflow.com/questions/21645071/...
paynd

6

मैं पुस्तकालयों के विभिन्न संस्करणों का उपयोग नहीं कर रहा हूं और एक ही त्रुटि हुई है, यह buildToolsVersionएएस 1 आरसी में हटाने के बाद हुआ है , लेकिन tools:node="replace" इस चाल को जोड़ते हुए, इसे अपने प्रकट में जोड़ें। <application ..../>ब्लॉक के अंदर xml:

<meta-data 
 tools:node="replace"
 android:name="com.google.android.gms.version"
 android:value="@integer/google_play_services_version" />

1
क्या ऐसा करते समय कोई दुष्प्रभाव होते हैं? क्या यह अभी भी आपके लिए नए एंड्रॉइड स्टूडियो 3 के साथ काम कर रहा है?
सकीबॉय

5

मेरे साथ भी ऐसा ही होता है। ग्रैडल -> बिल्ड ग्रैडल -> पर देखें और सुनिश्चित करें कि कम्पैटिबिलिटी "ऐप कॉम्पिटेंट" और "सपोर्ट डिजाइन" दोनों लाइनों में मेल खाती है, उनका एक ही वर्जन होना चाहिए।

फिर सुपर पक्का होने के लिए, कि यह बिना किसी समस्या के लॉन्च होगा, फाइल -> प्रोजेक्ट स्ट्रक्चर -> ऐप पर जाएं और टैब पर बिल्ड टूल वर्जन को चेक करें, यह आपके सपोर्ट कंपाइल लाइन की तरह ही होना चाहिए, जैसे ही मैं लगाता हूं एसडीके संस्करण को 25 और साथ ही टैब फ्लेवर्स पर लक्षित करें।

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-
   core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    *compile 'com.android.support:appcompat-v7:25.3.1'*
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    *compile 'com.android.support:design:25.3.1'*
}

मैंने जो किया और काम किया था। सौभाग्य!


3
  • अपने समर्थन पुस्तकालय को अंतिम संस्करण में अपडेट करें

  • खोलें Manifest File, और इसे मेनिफेस्ट फ़ाइल में जोड़ें

  • <uses-sdk tools:overrideLibrary="android.support.v17.leanback"/>

  • और >> में recyclerview के लिए जोड़ें build.gradle Module app:

  • compile 'com.android.support:recyclerview-v7:25.3.1'

  • और क्लिक करें: Sync Now


3

मैं इसे अपने ऐप मॉड्यूल 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 '26.0.0'
        }
    }
  }
}

आपने सचमुच मेरा दिन बना दिया।
जलालियानी

2

उत्तर स्वीकार किया जाता है, लेकिन एक चीज जो आप भी कर सकते हैं वह है अपनी परियोजना संरचना से पुस्तकालयों को परिभाषित करना। आप क्या कर सकते हैं:

  1. उन सभी पुस्तकालयों पर टिप्पणी करें जिनमें समस्या आ रही है
  2. अपनी परियोजना संरचना गोटो
  3. वहां से पुस्तकालयों को जोड़ें और यह स्वचालित रूप से सिंक हो जाएगा और समस्या दूर हो जाएगी।
  4. यदि समस्या बनी रहती है तो त्रुटि लॉग को देखने का प्रयास करें कि उपरोक्त सभी 3 चरणों का पालन करने के बाद लाइब्रेरी की क्या मांग है।

क्या होता है पूर्वनिर्धारित पुस्तकालयों के रूप में अब बंद मैं अब appcompat ले रहा हूँ : 26.0.0-अल्फा 1 यह चीजों के पुराने संस्करण का उपयोग करता है जब आप कुछ नया जोड़ते हैं और पुराने सामानों के साथ इसे हल करने की कोशिश करते हैं। जब आप इसे अपनी परियोजना संरचना से जोड़ते हैं, तो यह एक ही चीज़ जोड़ देगा लेकिन इसे हल करने के लिए नए सामान के साथ। आपकी समस्या का समाधान होगा।


0

मेरे लिए त्रुटि थी:

Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.2) from [com.android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
    is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.

मेरे लिए इसका समाधान मेरी परियोजना ग्रेडल फ़ाइल में था जिसे मुझे अपने com.google.gms को टक्कर देने की आवश्यकता थी: Google- सेवा संस्करण।

मैं 3.1.1 संस्करण का उपयोग कर रहा था:

classpath 'com.google.gms:google-services:3.1.1

और त्रुटि सुलझने के बाद मैंने उसे संस्करण 3.2.1 में उछाल दिया:

classpath 'com.google.gms:google-services:3.2.1

जब मैंने त्रुटि देखी तो मैंने अपने सभी पुस्तकालयों को सभी समर्थन पुस्तकालयों के v27.1.1 और सभी Firebase पुस्तकालयों के v15.0.0 सहित नवीनतम में अपग्रेड कर दिया था।


0

मैंने वियर ओएस के लिए पुराने एंड्रॉइड प्रोजेक्ट को अपडेट किया है। प्रोजेक्ट बनाते समय मुझे यह त्रुटि संदेश मिला है:

Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.2) from [com.android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.

मेरी बिल्ड. वेयर ऐप के लिए इन निर्भरताओं में शामिल हैं:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android.support:wearable:2.4.0'
implementation 'com.google.android.gms:play-services-wearable:16.0.1'
compileOnly 'com.google.android.wearable:wearable:2.4.0'}

समाधान :

implementation 'com.android.support:support-v4:28.0.0'निर्भरता में जोड़ने से मेरी समस्या हल हो गई।


0

मेटा डेटा हटाने और प्रोजेक्ट के पुनर्निर्माण का प्रयास करें।


-4

आप इस लिंक को पढ़ने का प्रयास करें

त्रुटि: कार्य के लिए निष्पादन विफल रहा ': app: processDevDebugManifest'। मैनिफ़ेस्ट विलय विफल: मेटा-data#android.support.VERSION@value मान = (25.3.0) को फिर से 26.0.0 यूएसडी में योगदान करें

: https://medium.com/@PongPloyAppDev/error-execution-failed-for-task-app-processdevdebugmanifest-48576be751

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


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