ত্রুটি :: APK এর প্যাকেজিংয়ের সময় ফাইলগুলি সদৃশ করুন


144

অ্যান্ড্রয়েড স্টুডিও। অ্যাপ্লিকেশন চলাকালীন আমি এই জাতীয় ত্রুটি পাচ্ছি।

Error:Execution failed for task ':app:packageDebug'. Duplicate files copied in APK META-INF/notice.txt

build.gradle

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/ASL2.0'
    }

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.0.1'
    compile 'com.j256.ormlite:ormlite-android:4.48'
    compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
    compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
    compile 'com.octo.android.robospice:robospice:1.4.11'
    compile 'com.octo.android.robospice:robospice-spring-android:1.4.11'
}

আমি কীভাবে এই ত্রুটিটি ঠিক করতে পারি?

সম্পাদিত

এইগুলি বাদ দেওয়া বিকল্পগুলি আমার সমস্যার সমাধান করেছে:

packagingOptions {
        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'
    }


2
এটি নকল নয়! অন্যান্য প্রশ্নকর্তারা বহিষ্কার বিকল্প যুক্ত করে তাদের ত্রুটিটি ঠিক করেছেন। তবে আপনি সকলেই দেখতে পাচ্ছেন যে আমি এই বিকল্পগুলি যুক্ত করেছি এবং আমার সমস্যাটি সরে যায় না।
— রবার্টাস সেটকাস


এই বিষয় সম্পর্কে কোন ধারণা নেই stackoverflow.com/questions/30364950/...
— Jithu দ্রষ্টব্য

ওটা ভালই আমার সমাধান হয়েছে। ধন্যবাদ
— রেশমা

উত্তর:


56

আমি মনে করি স্ট্রিং তুলনা কেস সংবেদনশীল। দিয়ে চেষ্টা করুনexclude 'META-INF/notice.txt'


আমার উত্তরটি notice.txtপরিবর্তে চেষ্টা করার বিষয়ে ছিল NOTICE.txt? যদিও ত্রুটিটি বাদ দেয় যেখানে তার থেকে আলাদা দেখা যায়। আপনার একটি META-INF/notice.txtফাইল আছে src/main/resources/?
— জাভিয়ের ডুক্রোহেট

দুঃখিত জাভিয়ার আমি তখন আপনার উত্তর বুঝতে পারি না। আপনারা কী বোঝাতে চেয়েছিলেন তা এখন দেখতে পাচ্ছি। আমি পরিবর্তিত করার চেষ্টা করেছি exclude 'META-INF/notice.txt'তবে কনসোলটি তা প্ররোচিত করেছিল Duplicate files copied in APK META-INF/NOTICE.txt। আজব, তাই না? এর resourcesঅধীনে কোনও ডিরেক্টরি নেই C:\PathToAndroidStudioProject\src\main।
— রবার্টাস সেটকাস

1
যদি আপনি উভয় রাখেন exclude 'META-INF/notice.txt'এবং exclude 'META-INF/NOTICE.TXT', এটি কাজ করে?
— জাভিয়ের ডুক্রোহেট

ধন্যবাদ। যে সাহায্য করেছে। :)
— রবার্টাস সেটকাস

1
'অ্যান্ড্রয়েড' অংশে বিল্ড.gradle ফাইলটিতে যোগ করার চেষ্টা করুন: packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' }
— ক্রাইস্টিয়ান

22

আমি মনে করি আপনার কেবল বিল্ড . gradle এ এই বিকল্পগুলি অন্তর্ভুক্ত করা দরকার :

packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
    }

1
অবশেষে এটি কার্যকর করার পরে, আমি এই প্রশ্নের সমাধান করেছি। থ্যাঙ্কস ম্যান :)
— হার্ডিক যোশি

10

সংক্ষিপ্ত উত্তর:

ব্যবহার করে বিস্তারিত গ্রেড আউটপুট দেখুন gradle assembleএবং নকল থাকা ফাইলগুলি নোট করুন এবং এগুলি ব্যবহার করে বাদ দিন:

android {
  packagingOptions {
    exclude 'META-INF/notice.txt'
  }
}

দীর্ঘ উত্তর:

assembleবিস্তারিত আউটপুট জন্য কমান্ড লাইন থেকে গ্রেড টাস্ক চালান :

./gradlew assemble || gradle assemble

এটি স্বয়ংক্রিয়ভাবে কী বাদ দিতে হবে তা দেখায়:

studioWorkspace/CCDroid git:(master) ✗ ± ./gradlew assembleDebug
:app:preBuild
:app:compileDebugNdk UP-TO-DATE
:app:preDebugBuild
:app:checkDebugManifest
:app:preReleaseBuild
:app:prepareComAndroidSupportAppcompatV72200Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42200Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:preDexDebug UP-TO-DATE
:app:dexDebug UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:validateDebugSigning
:app:packageDebug
Error: duplicate files during packaging of APK /Users/shubham/code/studioProjects/CCDroid/app/build/outputs/apk/app-debug-unaligned.apk
    Path in archive: LICENSE
    Origin 1: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar
    Origin 2: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-all/1.8.4/5c97d8b6e715ed941aeb93d6fc401ab3eb18a566/mockito-all-1.8.4.jar
You can ignore those files in your build.gradle:
    android {
      packagingOptions {
        exclude 'LICENSE'
      }
    }
:app:packageDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:packageDebug'.
> Duplicate files copied in APK LICENSE
    File 1: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar
    File 2: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 11.863 secs

আউটপুটে এই অংশটি দেখুন:

android {
  packagingOptions {
    exclude 'LICENSE'
  }
}

এমনকি এটি নির্ভরতাগুলির তালিকা প্রদর্শন করে যা ডুপ্লিকেট ফাইল (LICENSE) থেকে উদ্ভূত হয়েছিল। আউটপুটে অরিজিন # সহ লাইনগুলি দেখুন ।


এই বিষয় সম্পর্কে কোন ধারণা নেই stackoverflow.com/questions/30364950/...
— Jithu দ্রষ্টব্য

1
এটি আপনার পক্ষে সঠিক হলেও আমি আপনার উত্তরটিকে প্রায় উপেক্ষা করেছি। আমি পোস্টটির শীর্ষে উত্তরটি রাখার পরামর্শ দেব: অ্যান্ড্রয়েড {প্যাকেজিংঅপশনস 'ব্যাখ্যা এবং দীর্ঘ গ্রেড আউটপুট (যা উত্তরের সাথে প্রাসঙ্গিক নয়} এর পরে' LICENSE 'বাদ দেয় This এই অংশটি আপনি এই ফাইলগুলি উপেক্ষা করতে পারেন আপনার বিল্ডসরেডলে: অ্যান্ড্রয়েড {প্যাকেজিংঅ্যাপশনগুলি L 'লাইসেন্স' '
— lude lude

সম্পন্ন. অনেক ধন্যবাদ @ gorbysbm।
— শুভম চৌধুরী চৌধুরী

6

এটি আপনার বিল্ড.gradle ফাইলটিতে যুক্ত করুন ...

packagingOptions {
exclude 'META-INF/NOTICE' // will not include NOTICE file
exclude 'META-INF/LICENSE' // will not include LICENSE file
exclude 'META-INF/DEPENDENCIES' // will not include LICENSE file
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}

এটার মত...

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "your package name"
    minSdkVersion 14
    targetSdkVersion 25
    versionCode 30
    versionName "3.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
packagingOptions {
    exclude 'META-INF/NOTICE' // will not include NOTICE file
    exclude 'META-INF/LICENSE' // will not include LICENSE file
    exclude 'META-INF/DEPENDENCIES' // will not include LICENSE file
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
}
}

3

এটি একাধিক ত্রুটি, আপনি ঠিক বলেছেন।

অধীনে apply plugin: 'android-library'

এটি যুক্ত করুন :: android { packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } }

1 তম ত্রুটিটি ফাইলের সদৃশ দ্বারা হয়, দ্বিতীয়টি হ'ল লাইকেনসেট এবং নোটিশ ফাইলের দ্বারা। এটি পরে কাজ করবে

সম্পাদনা করুন: সমস্যাগুলি চিহ্নিত করার বিষয়ে আমার পোস্টটি এখানে দেখুন :: অ্যান্ড্রয়েড গ্রেডল প্লাগইন 0.7.0: "এপিএকের প্যাকেজিংয়ের সময় ফাইলগুলি নকল করুন"


এই বিষয় সম্পর্কে কোন ধারণা নেই stackoverflow.com/questions/30364950/...
— Jithu দ্রষ্টব্য

1

এটা আমার জন্য কাজ করে

android {
...

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
    }
}

1

মজার ব্যাপার হচ্ছে, যখন আমি মোছা gradle থেকে এই লাইন, এটা কাজ করে:

compile 'org.apache.commons:commons-lang3:3.3.1'

0

প্যাকেজিংঅ্যাপশনগুলির জন্য সঠিক অবস্থানটি খুঁজতে আমাকে কিছুটা খেলতে হয়েছিল। জ্যাকসন -কোর: ২.২.২ এবং এর মধ্যে দ্বন্দ্বের জন্য নকল ফাইল সমস্যার সমাধান করাজ্যাকসন ২.২.২ জ্যাকসন-ডাটাবাইন্ড: ২.২.২ এর ডিএসএল সম্প্রতি পরিবর্তিত হয়েছে বলে মনে হচ্ছে বিল্টটুলস 23 সহ সাম্প্রতিক অ্যান্ড্রয়েড স্টুডিও ১.৪.১ এ আপনাকে অ্যান্ড্রয়েড রাখতে হবে। সংকলন হিসাবে একই স্তরের প্যাকেজিং বিকল্পগুলি এবং কোনও মডেল {অ্যান্ড্রয়েড { ধনুর্বন্ধনী মধ্যে নেই!

model { 
   android {
        compileSdkVersion = 21
        buildToolsVersion = "23.0.1"

        defaultConfig.with {
              applicationId = "com.android.sensorgraph"
              minSdkVersion.apiLevel = 21
              targetSdkVersion.apiLevel = 22
        }
   }

   android.packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
   }
   compileOptions.with {
        sourceCompatibility = JavaVersion.VERSION_1_7
        targetCompatibility = JavaVersion.VERSION_1_7
   }
} 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.