গ্রেডেলের সদৃশ প্রবেশের ত্রুটি: মেটা-আইএনএফ / ম্যানিফেস.এমএফ (বা জার থেকে কোনও ফাইল কীভাবে মুছবেন)


19

আমি একটি গিথুব সংগ্রহশালা ক্লোন করেছি কারণ আমি কোডটি অধ্যয়ন করতে চেয়েছিলাম, কিন্তু যখন আমি এটিকে অ্যান্ড্রয়েড স্টুডিওতে তৈরি করার চেষ্টা করেছি তখন আমি কিছুটা সমস্যায় পড়েছিলাম। গুগল মাভেন সংগ্রহস্থল যুক্ত করার পরে (যেমন অ্যান্ড্রয়েড স্টুডিও দ্বারা অনুরোধ করা হয়েছে) এবং গ্রেডল প্লাগইন সংস্করণ এবং গ্রেড সংস্করণ উভয় (যথাক্রমে 3.5.2 এবং 5.4.1 তে) আপডেট করার পরে, নিম্নলিখিত ত্রুটির কারণে বিল্ডটি ব্যর্থ হয়:

কারণ: সদৃশ প্রবেশ: META-INF / MANIFEST.MF

এবং এটি, আরও নির্দিষ্ট করে বলার জন্য:

দ্বারা তৈরি: java.util.zip.ZipException: সদৃশ এন্ট্রি: মেটা-INF / MANIFEST.MF

এখানে আমার প্রকল্প স্তরের বিল্ড.gradle ফাইলটি রয়েছে:


    buildscript {
        repositories {
            jcenter()
            google()
        }

        dependencies {
            classpath 'com.android.tools.build:gradle:3.5.2'

            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }

    allprojects {
        repositories {
            jcenter()

            maven {
                url 'https://maven.google.com'
            }

        }
    }

এখানে আমার মডিউল বিল্ড.gradle ফাইল (কিছু চেষ্টা করার আগে):


    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 22
        buildToolsVersion '28.0.3'

        defaultConfig {
            applicationId "com.thelittlenaruto.supportdesignexample"
            minSdkVersion 11
            targetSdkVersion 22
            versionCode 1
            versionName "1.0"
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation ('com.android.support:appcompat-v7:22.2.1')
        implementation ('com.android.support:design:22.2.1')
        implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
    }

আমি এ পর্যন্ত চেষ্টা করেছি এখানে:

  • আমার মডিউল বিল্ড.gradle ফাইলের অ্যান্ড্রয়েড বিভাগে নিম্নলিখিতটি যুক্ত করা হচ্ছে:

    sourceSets {
            main{
                java{
                    exclude '**/META-INF/MANIFEST'
                    exclude '**/META-INF/MANIFEST.MF'
                    exclude 'META-INF/MANIFEST'
                    exclude 'META-INF/MANIFEST.MF'
                    exclude '!META-INF/MANIFEST.MF'
                }
            }
        }

  • এটি যুক্ত করা হচ্ছে:

    sourceSets.main.res.filter.exclude 'META-INF/MANIFEST'
        sourceSets.main.res.filter.exclude 'META-INF/MANIFEST.MF'

  • এটিও:

    packagingOptions {
            apply plugin: 'project-report'
            exclude '**/META-INF/MANIFEST'
            exclude '**/META-INF/MANIFEST.MF'
            exclude 'META-INF/MANIFEST'
            exclude 'META-INF/MANIFEST.MF'
            exclude '!META-INF/MANIFEST.MF'
        }

  • এবং এই:

    packagingOptions {
            pickFirst '**/META-INF/MANIFEST'
            pickFirst '**/META-INF/MANIFEST.MF'
            pickFirst 'META-INF/MANIFEST'
            pickFirst 'META-INF/MANIFEST.MF'
            pickFirst '!META-INF/MANIFEST.MF'
        }

  • এই:

    aaptOptions {
            ignoreAssetsPattern "!META-INF/MANIFEST.MF"
            ignoreAssetsPattern "META-INF/MANIFEST.MF"
        }

আমি মনে করি আমি এই প্রশ্নের বেশিরভাগ ক্ষেত্রেই চেষ্টা করেছি: অ্যান্ড্রয়েড স্টুডিও গ্রেডেলগুলি থেকে নির্দিষ্ট ফাইলগুলি কীভাবে বাদ দেওয়া যায়?

কিছুই কাজ হয়নি।

সমাধান অনুসন্ধানের পরে, আমি মনে করি যে সমস্যাটি হ'ল আমি নকল নির্ভরতা করেছি। সুতরাং আমি নিম্নলিখিত চেষ্টা করেছি:


    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation ('com.android.support:appcompat-v7:22.2.1'){
            exclude module: 'support-v4'
        }
        implementation ('com.android.support:design:22.2.1')
        implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
    }

এবং এই:


    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation ('com.android.support:design:22.2.1'){
            exclude module: 'support-v7'
        }
        implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'
    }

আমি এখনও একই ত্রুটি পেয়েছি।

কেউ দয়া করে আমাকে বলতে পারেন যে আমি কী ভুল করছি? প্রত্যাশায় আপনাকে ধন্যবাদ :)


আমি GitHub থেকে আমার অ্যাপ্লিকেশানের Roboyard এখানে একই সমস্যা আছে: stackoverflow.com/q/59130438/1069083 হতে পারে আপনি সেখানে মিল খুঁজে
rubo77

উত্তর:


22

রাজেন রায়য়ারেলা যেমন বলেছিলেন, ফাইল-> প্রকল্পের কাঠামো- > প্রকল্প-> অ্যান্ড্রয়েড গ্রেডল প্লাগইন সংস্করণে যান এবং এটিকে ৩.৫.২ থেকে ৩.৩.১ এ ডাউনগ্রেড করুন।


8
এটি সত্যিই কোনও সমাধান নয়। অ্যান্ড্রয়েড স্টুডিওগুলি প্রতিবার আপগ্রেড করার জন্য
ঝাঁকুনি দিচ্ছে

এই উত্তরটি অপ্রচলিত, যেহেতু পরিবর্তে 3.5.3 গ্রেডে আপগ্রেড করার ফলে সমস্যাটি স্থির হয়েছে বলে মনে হচ্ছে
রুবো 77

6

প্রকল্প নির্ভরতা এতে সেট করুন :

classpath 'com.android.tools.build:gradle:3.5.3'

বা সর্বশেষ এক।

দ্রষ্টব্য: এটি করে আমার সমস্যাটি সমাধান হয়ে গেছে।


Gradle 3.5.2 সঙ্গে আমার সমস্যা 3.5.3 খুব সমাধান হয়েছে, কিন্তু সচেতন হতে: আমি সাবধানবাণী `অসমর্থিত Gradle বৈশিষ্ট্যগুলি এই বিল্ড ব্যবহার করা হয়েছিল পেতে, বেমানান এটি তৈরি সঙ্গে Gradle 6.0.`
rubo77

1

সদৃশ নির্ভরতার কারণে এই সমস্যাটি ঘটছে।
গ্রেডল অ্যাপে একাধিক নির্ভরতা পরীক্ষা করে দেখুন।


সঠিক, এটি সমস্যা। আপনার গ্রেড ফাইলগুলিতে সদৃশ নির্ভরতা থাকবে
মারিউসবি

1
@ শ্রীনিবাসান, যদি এখানে নকল থাকে, তবে এটি প্যাকেজিংঅ্যাপশনগুলিতে বা বাদ দিয়ে বা পিকফার্স্ট দ্বারা সমাধান করা উচিত ছিল, তবে এটি কেবল গ্রেডল প্লাগইন নিয়েই ইস্যু করে। অ্যান্ড্রয়েড স্টুডিওর জন্য বগট্র্যাকারে একটি অনুরোধ যোগ করার জন্য সমস্যাটি পুনঃসংশ্লিষ্ট করার জন্য আমি এখনও আরও নিখুঁতভাবে যাচাই করতে এবং একটি নমুনা অ্যাপ্লিকেশন তৈরি করতে চাই না।
রাজেন রায়ইয়ারেলা

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.