ত্রুটি :: 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.