OS स्वतंत्र पथ 'META-INF / proguard / androidx-annotations.pro' के साथ एक से अधिक फ़ाइल मिली


79

मैं android WorkManager की कोशिश कर रहा हूँ , कोड "त्रुटि फेंक रहा है" OS स्वतंत्र पथ के साथ एक से अधिक फ़ाइल मिली 'META-INF / proguard / androidx-annotations.pro "जब मैं दौड़ रहा था, तो मैंने निम्नलिखित उत्तर की कोशिश की , यह मददगार नहीं था।

कार्यपालक निर्भरताएँ

build.gradle (ऐप)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "rock.dmx.xaro.workmanagerexample"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


}

dependencies {
    def work_version = "1.0.0-alpha09"
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation "android.arch.work:work-runtime:$work_version"
}

जवाबों:


167

यह इस समय एक ज्ञात समस्या है, आर्किटेक्चर कंपोनेंट्स रिलीज़ नोट्स इस मुद्दे को रेखांकित करते हैं और इसे ठीक करने के लिए एक समाधान प्रदान करते हैं जब तक alpha10कि कार्य प्रबंधक का संस्करण नहीं:

ज्ञात मुद्दा

यदि आप निम्नलिखित समस्या में भाग लेते हैं: "OS स्वतंत्र पथ 'META-INF / proguard / androidx-annotations.pro' के साथ एक से अधिक फ़ाइल मिलीं, तो कृपया एक अस्थायी वर्कअराउंड के रूप में अपनी श्रेणीबद्ध फ़ाइल में निम्नलिखित डालें, जबकि हम ठीक करते हैं अल्फा 10 में मुद्दा:

 android {
     packagingOptions {
         exclude 'META-INF/proguard/androidx-annotations.pro'
     }
 }

तो, आपके मामले में, Android अनुभाग निम्नलिखित की तरह होना चाहिए:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "rock.dmx.xaro.workmanagerexample"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    // Temporary fix until alpha10
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}

समस्या को 1.0.0-alpha10WorkManager के संस्करण में ठीक से संबोधित किया जाना चाहिए ।


यह सिर्फ एक और मामला है जो दिखाता है कि एंड्रॉइड डेवलपमेंट इकोसिस्टम कितना बेवकूफ है।
सिलाक

मेरे मामले में मुझे exclude 'META-INF/proguard/coroutines.pro'पैकेजिंग में भी जोड़ना था
जोकिन इचुरुक

12

जब मैंने अपने ऐप के बिल्ड.ग्रेड निर्भरता अनुभाग में निम्नलिखित को जोड़ा तो मुझे वही त्रुटि मिली:

implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"

AndroidX में प्रवासन के बाद :

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

अब मैं समस्याओं के बिना निर्माण करने में सक्षम हूं।


मेरा सेटअप

Android Studio 3.2.1
JRE: 1.8.0_152-रिलीज़ -1136-b06 x86_64
JVM: OpenJDK 64-बिट सर्वर VM JetBrains
macOS 10.13.6 द्वारा


7

Build.gradle (एप्लिकेशन) में जोड़ने का उपयोग कर सकते (द्वारा उत्तर दिया TheStrikeBone )

android {
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}

या डाउनग्रेड android.arch.workसंस्करण में1.0.0-alpha08

dependencies {
    implementation 'android.arch.work:work-runtime:1.0.0-alpha08'
}

5

इसे मेरे ऐप्स में जोड़कर build.gradle फ़ाइल ने मेरी समस्या हल कर दी।

android {
  packagingOptions {
    exclude 'META-INF/proguard/androidx-annotations.pro'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/ASL2.0'
  }
}

1
क्या आप समझने के लिए और अधिक समझा सकते हैं? धन्यवाद।
शांतेश्वर इन्डे

0

मेरे मामले में, मैं androidx.room को androidx.lifecycle के समान संस्करण का उपयोग करके समस्या को हल करता हूं


0

एक शुरुआत के रूप में, कुछ ट्यूटोरियल में एक पूर्व-निर्मित परियोजना का उपयोग करते समय मेरे पास यह मुद्दा था, और उपरोक्त समाधान मेरे लिए काम नहीं करता था।

इसलिए यदि किसी को समस्या का सामना करना पड़ता है।

मुझे build.gradleप्रोजेक्ट के लिए फ़ाइल में gradle संस्करण अपग्रेड करना पड़ा :

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.1'        
    }
}
...

तब मुझे ग्रेडियर रैपर को अपग्रेड करना पड़ा gradle-wrapper.properties:

#Wed Sep 26 11:30:41 IST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

# Delete this
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

# Add this
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

फिर, मैंने फ़ाइल useAndroidXमें सही सेट किया gradle.properties:

android.useAndroidX=true

बस। मुझे उम्मीद है यह मदद करेगा।


0

हमेशा ग्रैडल में कार्यान्वयन के लिए पहले देखो। हो सकता है कि दो कार्यान्वयन एक-दूसरे से टकराते हों .. हो सकता है कि आपने कार्ड व्यू v7 को डिलीट न किया हो, और एंड्रॉइड कार्ड व्यू जोड़ा हो, ऐसा कुछ आप अन्य चीजों को आजमाने से करते हैं।

मेरे पास बस यही स्थिति है और पुराने कार्यान्वयन को हटाने से समस्या हल हो गई।

हैप्पी कोडिंग नेनाड

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