অ্যান্ড্রয়েড গ্রেডল প্লাগইন ০..0.০: "APK এর প্যাকেজিংয়ের সময় ফাইলগুলি নকল করুন"


324

নিম্নলিখিত সহ অ্যান্ড্রয়েড গ্রেডল প্লাগইন 0.7.0 ব্যবহার করছে build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.0'
    }
}

apply plugin: 'android'

repositories {
    maven { url "https://android-rome-feed-reader.googlecode.com/svn/maven2/releases" }
    maven { url "http://dl.bintray.com/populov/maven" }
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion '18.1.1'

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
    }
    buildTypes {
        release {
            runProguard true
            proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
        }
    }
    productFlavors {
        defaultFlavor {
            proguardFile 'proguard-rules.txt'
        }
    }
    sourceSets {
        instrumentTest.setRoot('src/instrumentTest')
    }
}

configurations {
    apt
}

ext.androidAnnotationsVersion = '2.7.1';

dependencies {
    compile 'com.android.support:support-v4:18.0.0'

    compile 'com.viewpagerindicator:library:2.4.1@aar'

    compile 'com.google.code.android-rome-feed-reader:android-rome-feed-reader:1.0.0-r2'
    compile 'org.jdom:jdom:1.1.1-android-fork'

    apt "com.googlecode.androidannotations:androidannotations:${androidAnnotationsVersion}"
    compile "com.googlecode.androidannotations:androidannotations-api:${androidAnnotationsVersion}"

    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.j256.ormlite:ormlite-android:4.47'
    compile 'com.j256.ormlite:ormlite-core:4.47'
    compile 'org.springframework.android:spring-android-core:1.0.1.RELEASE'
    compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'
    compile 'com.prolificinteractive:actionbarsherlock:4.3.1@aar'

    compile 'com.google.code.geocoder-java:geocoder-java:0.15'

    compile files('libs/CWAC-Pager.jar')
}

android.applicationVariants.all { variant ->
    aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}")
    println "****************************"
    println "variant: ${variant.name}"
    println "manifest:  ${variant.processResources.manifestFile}"
    println "aptOutput:  ${aptOutput}"
    println "****************************"

    variant.javaCompile.doFirst {
        println "*** compile doFirst ${variant.name}"
        aptOutput.mkdirs()
        variant.javaCompile.options.compilerArgs += [
                '-processorpath', configurations.apt.getAsPath(),
                '-AandroidManifestFile=' + variant.processResources.manifestFile,
                '-s', aptOutput
        ]
    }
}

ত্রুটি দেয় Duplicate files copied in APK META-INF/LICENSE.txt:

WARNING: Dependency commons-logging:commons-logging:1.0.4 is ignored for defaultFlavorDebug as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
WARNING: Dependency commons-logging:commons-logging:1.0.4 is ignored for defaultFlavorRelease as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage it with jarjar to change the class packages
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "aptOutput" on "com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@5705013c", value: "/Users/david/Developer...".
****************************
variant: defaultFlavorDebug
manifest:  /Users/david/Developer/.../build/manifests/defaultFlavor/debug/AndroidManifest.xml
aptOutput:  /Users/david/Developer/.../build/source/apt_generated/defaultFlavor/debug
****************************
Deprecated dynamic property "aptOutput" created in multiple locations.
****************************
variant: defaultFlavorRelease
manifest:  /Users/david/Developer/.../build/manifests/defaultFlavor/release/AndroidManifest.xml
aptOutput:  /Users/david/Developer/.../build/source/apt_generated/defaultFlavor/release
****************************
:TravelGuard:compileDefaultFlavorDebugNdk UP-TO-DATE
:TravelGuard:preBuild UP-TO-DATE
:TravelGuard:preDefaultFlavorDebugBuild UP-TO-DATE
:TravelGuard:preDefaultFlavorReleaseBuild UP-TO-DATE
:TravelGuard:prepareComProlificinteractiveActionbarsherlock431Library UP-TO-DATE
:TravelGuard:prepareComViewpagerindicatorLibrary241Library UP-TO-DATE
:TravelGuard:prepareDefaultFlavorDebugDependencies
:TravelGuard:compileDefaultFlavorDebugAidl UP-TO-DATE
:TravelGuard:compileDefaultFlavorDebugRenderscript UP-TO-DATE
:TravelGuard:generateDefaultFlavorDebugBuildConfig UP-TO-DATE
:TravelGuard:mergeDefaultFlavorDebugAssets UP-TO-DATE
:TravelGuard:mergeDefaultFlavorDebugResources UP-TO-DATE
:TravelGuard:processDefaultFlavorDebugManifest UP-TO-DATE
:TravelGuard:processDefaultFlavorDebugResources UP-TO-DATE
:TravelGuard:generateDefaultFlavorDebugSources UP-TO-DATE
:TravelGuard:compileDefaultFlavorDebugJava
*** compile doFirst defaultFlavorDebug
/Users/david/Developer/.../src/main/java/com/travelguard/service/TravelGuardService.java:53: cannot find symbol
symbol  : class TravelGuardPrefs_
location: class com.travelguard.service.TravelGuardService
    TravelGuardPrefs_ travelGuardPrefs;
    ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/CategoriesActivity.java:14: cannot find symbol
symbol  : class AssistanceFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.AssistanceFragment_;
                                   ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/CategoriesActivity.java:16: cannot find symbol
symbol  : class CategoryFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.CategoryFragment_;
                                   ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/CategoriesActivity.java:17: cannot find symbol
symbol  : class ContactFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.ContactFragment_;
                                   ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/CountriesActivity.java:25: cannot find symbol
symbol  : class TravelGuardPrefs_
location: package com.travelguard.service
import com.travelguard.service.TravelGuardPrefs_;
                              ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/CountriesActivity.java:44: cannot find symbol
symbol  : class TravelGuardPrefs_
location: class com.travelguard.ui.CountriesActivity
    TravelGuardPrefs_ travelGuardPrefs;
    ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/InstructionsActivity.java:18: cannot find symbol
symbol  : class AssistanceFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.AssistanceFragment_;
                                   ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/InstructionsActivity.java:19: cannot find symbol
symbol  : class ContactFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.ContactFragment_;
                                   ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/InstructionsActivity.java:21: cannot find symbol
symbol  : class InstructionsFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.InstructionsFragment_;
                                   ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/MainActivity.java:36: cannot find symbol
symbol  : class TravelGuardPrefs_
location: package com.travelguard.service
import com.travelguard.service.TravelGuardPrefs_;
                              ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/MainActivity.java:40: cannot find symbol
symbol  : class AssistanceFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.AssistanceFragment_;
                                   ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/MainActivity.java:41: cannot find symbol
symbol  : class ContactFragment_
location: package com.travelguard.ui.fragments
import com.travelguard.ui.fragments.ContactFragment_;
                                   ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/MainActivity.java:55: cannot find symbol
symbol  : class TravelGuardPrefs_
location: class com.travelguard.ui.MainActivity
    TravelGuardPrefs_ travelGuardPrefs;
    ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/TermsActivity.java:17: cannot find symbol
symbol  : class TravelGuardPrefs_
location: package com.travelguard.service
import com.travelguard.service.TravelGuardPrefs_;
                              ^
/Users/david/Developer/.../src/main/java/com/travelguard/ui/TermsActivity.java:23: cannot find symbol
symbol  : class TravelGuardPrefs_
location: class com.travelguard.ui.TermsActivity
    TravelGuardPrefs_ travelGuardPrefs;
    ^
Note: Starting AndroidAnnotations annotation processing
Note: AndroidManifest.xml file found: /Users/david/Developer/.../build/manifests/defaultFlavor/debug/AndroidManifest.xml
Note: Number of files generated by AndroidAnnotations: 22
Note: Generating source file: com.travelguard.service.SmartTravellerService_
Note: Generating source file: com.travelguard.service.SmartTravellerWebservice_
Note: Generating source file: com.travelguard.service.TravelGuardPrefs_
Note: Generating source file: com.travelguard.service.TravelGuardService_
Note: Generating source file: com.travelguard.service.TravelGuardWebservice_
Note: Generating source file: com.travelguard.ui.AdviceActivity_
Note: Generating source file: com.travelguard.ui.CategoriesActivity_
Note: Generating source file: com.travelguard.ui.ContactDetailActivity_
Note: Generating source file: com.travelguard.ui.ContactListActivity_
Note: Generating source file: com.travelguard.ui.ContactTravelGuardActivity_
Note: Generating source file: com.travelguard.ui.CountriesActivity_
Note: Generating source file: com.travelguard.ui.InformationActivity_
Note: Generating source file: com.travelguard.ui.InstructionsActivity_
Note: Generating source file: com.travelguard.ui.MainActivity_
Note: Generating source file: com.travelguard.ui.TermsActivity_
Note: Generating source file: com.travelguard.ui.TravelGuardActivity_
Note: Generating source file: com.travelguard.ui.fragments.AdviceDetailFragment_
Note: Generating source file: com.travelguard.ui.fragments.AdviceFragment_
Note: Generating source file: com.travelguard.ui.fragments.AssistanceFragment_
Note: Generating source file: com.travelguard.ui.fragments.CategoryFragment_
Note: Generating source file: com.travelguard.ui.fragments.ContactFragment_
Note: Generating source file: com.travelguard.ui.fragments.InstructionsFragment_
Note: Time measurements: [Whole Processing = 913 ms], [Generate Sources = 358 ms], [Extract Manifest = 163 ms], [Process Annotations = 158 ms], [Extract Annotations = 120 ms], [Validate Annotations = 82 ms], [Find R Classes = 28 ms],
Note: Time measurements: [Whole Processing = 0 ms],
Note: Time measurements: [Whole Processing = 0 ms],
warning: The following options were not recognized by any processor: '[androidManifestFile]'
Note: /Users/david/Developer/.../src/main/java/com/travelguard/ui/ContactDetailActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/david/Developer/.../src/main/java/com/travelguard/service/SmartTravellerService.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:TravelGuard:preDexDefaultFlavorDebug UP-TO-DATE
:TravelGuard:dexDefaultFlavorDebug
:TravelGuard:processDefaultFlavorDebugJavaRes UP-TO-DATE
:TravelGuard:validateDebugSigning
:TravelGuard:packageDefaultFlavorDebug
Error: duplicate files during packaging of APK /Users/david/Developer/.../build/apk/TravelGuard-defaultFlavor-debug-unaligned.apk
    Path in archive: META-INF/LICENSE.txt
    Origin 1: /Users/david/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.jar
    Origin 2: /Users/david/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.2/397f4731a9f9b6eb1907e224911c77ea3aa27a8b/commons-codec-1.2.jar
:TravelGuard:packageDefaultFlavorDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':TravelGuard:packageDefaultFlavorDebug'.
> Duplicate files copied in APK META-INF/LICENSE.txt
    File 1: /Users/david/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.jar
    File 2: /Users/david/.gradle/caches/modules-2/files-2.1/commons-httpclient/commons-httpclient/3.1/964cd74171f427720480efdec40a7c7f6e58426a/commons-httpclient-3.1.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: 21.957 secs

আমি আজ অ্যান্ড্রয়েড স্টুডিও আপডেট করার আগে জিনিসগুলি ঠিকঠাক কাজ করছিল। কোন ধারনা?

সম্পাদনা: আমি কমান্ডগুলি চালনার মাধ্যমে সাময়িকভাবে এটি ঠিক করতে সক্ষম হয়েছি

zip -d spring-android-core-1.0.1.RELEASE.jar META-INF/notice.txt

সমস্ত অনুলিপি ত্রুটি না হওয়া পর্যন্ত।



2
এটি বাগ কোড . google.com/p/android/issues/detail?id=61573 বলে মনে হচ্ছে । আমি জানি না কেন এই প্রকাশে এটি কেবল আপনার জন্যই ঝামেলা হতে শুরু করেছে।
স্কট বার্তা

একই সমস্যা আটকে বাগ সমাধান না হওয়া পর্যন্ত অ্যান্ড্রয়েড স্টুডিও ০..7..7 এবং গ্রেডেল প্লাগইন 0.6.3 এ থাকার সিদ্ধান্ত নিয়েছে
Mente

6
আপনার কথাটি পরিষ্কার হওয়া উচিত: আপনি গ্রেড 0.7.0 ব্যবহার করছেন না - এটি অ্যান্ড্রয়েড গ্রেডেল প্লাগইন। যা সংস্করণ 1.9.0.0 এ গ্রেড (র‌্যাপার সহ) ব্যবহার করে। ভুল শব্দগুচ্ছ প্রদত্ত প্রসঙ্গ ছাড়াও বিভ্রান্তির দিকে পরিচালিত করবে।
onigunn

1
গ্রেডল 0.9.1pickFirst থেকে উপলব্ধ বিকল্পটি নোট করুন ।
জেজেডি

উত্তর:


475

অ্যান্ড্রয়েড স্টুডিও সংস্করণ হিসাবে 0.8.14

আপনার যোগ করা উচিত:

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

আপনার build.gradleফাইল

ইতিহাস:

এই বাগের 14 মন্তব্য অনুসারে: https://issuetracker.google.com/issues/36982149#comment14 এটি অ্যান্ড্রয়েড গ্রেডল প্লাগইনের v0.7.0 এ একটি বাগ এবং এটি খুব শীঘ্রই 0.7.1 এ ঠিক করা হবে।

0.7.1 এর সংযোজন সম্পর্কে সেই বাগ থেকে প্রাপ্ত নোটগুলি এখানে:

0.7.1 এই জন্য ঠিক আছে।

ফাইলগুলি বাদ দেওয়ার জন্য ডিএসএল হ'ল:

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

আপনি যতগুলি চান বাদ দিতে পারেন যতগুলি বাদ দিতে পারেন। মান আর্কাইভ পাথ। এখনও কোনও ওয়াইল্ডকার্ড বা গ্লোব সমর্থন নেই।

ফাইলের নাম "LICENSE.txt" এবং "NOTICE.txt" কেস সংবেদনশীল। "লাইসেন্স.txt" এবং "বিজ্ঞপ্তি। টেক্সট" দিয়েও চেষ্টা করে দেখুন।


12
ধন্যবাদ! আমাকে 'মেটা-আইএনএফ / বিজ্ঞপ্তি। টেক্সট'; )ও বাদ দিতে হয়েছিল
Climbatize

71
দিনের পর দিন স্ট্যাকওভারফ্লো আসার আগে প্রোগ্রামাররা কীভাবে দূরবর্তীভাবে উত্পাদনশীল হতে পারত তা দেখে আমি অবাক হয়েছি। ঠিক করার জন্য ধন্যবাদ! পরিবর্তে আমাকে মেটা-আইএনএফ / লাইসেন্স এবং / বিজ্ঞপ্তিটি বাদ দিতে হয়েছিল। (কোনও টেক্সট নয়, এমনকি সর্বশেষ গ্রেডেও।)
ডোমেনুক

3
আমার কোন ফাইলটি সম্পাদনা করা উচিত এবং এটি কোথায় পাওয়া যাবে? ধন্যবাদ, আইয়াল
আইয়াল

2
@ um.anusorn শন আপনাকে গ্রেড ফাইলের জন্য একটি ভাল উদাহরণ দিয়েছে যা প্যাকেজিংয়ের সময় এই ফাইলগুলি লাইব্রেরি থেকে বাদ দেয়। আমার যা আছে তা এই: প্যাকেজিংঅ্যাপশনগুলি M 'মেটা-আইএনএফ / বিজ্ঞপ্তি' বাদ 'মেটা-আইএনএফ / বিজ্ঞপ্তি' বাদ 'মেটা-আইএনএফ / নির্ধারিত' বাদ 'মিতা-আইএনএফ / লাইসেন্স.txt' বাদ 'মিতা-আইএনএফ / dependenices.txt 'বাদ' মেটা-INF / notice.txt '}
praneetloke

4
এখনও বিল্ট টুলগুলির v0.12 এ ত্রুটিপূর্ণ বাগটি রয়েছে .. শুধু বলছেন
নীলজোর

149

আমার ক্ষেত্রে আমাকে বেশ কয়েকটি অতিরিক্ত বর্জন অন্তর্ভুক্ত করতে হয়েছিল। এটি প্রদর্শিত হয় এটি নিয়মিত প্রকাশগুলি পছন্দ করে না যা এটিকে একটি দুর্দান্ত এক-লাইনার করে তুলেছিল।

android {
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/LGPL2.1'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/notice.txt'
    }
}

আমি কেবল প্রয়োজন LICENSEএবং NOTICEআমি যোগ করার পরে commons-lang3
theblang

এইটি আমাকে সহায়তা করেছে (আমার অ্যান্ড্রয়েডঅ্যানোটেশনস + স্প্রিং আরএসটি টেম্পলেট রয়েছে)। এই জাতীয় হ্যাক যুক্ত করার সাথে সাথে এই ইন্টেলিজিজ পণ্যটি
ভয়ঙ্করভাবে গ্রহণের

কোনটি প্রভাবিত করে তা জানেন না তবে এটি সত্যই সহায়ক।
কপারক্যাশ

আমার জন্য কাজ করা হয়নি, তবুও সতর্কতা দেখায়: নির্ভরতা org.apache.httpcomp घटक: httpclient: 4.3 ডিবাগের জন্য উপেক্ষা করা হবে কারণ এটি অ্যান্ড্রয়েড দ্বারা সরবরাহিত অভ্যন্তরীণ সংস্করণের সাথে বিরোধী হতে পারে। সমস্যা ক্ষেত্রে, jarjar সঙ্গে এটি পুনঃপ্যাকেজ দয়া বর্গ প্যাকেজ পরিবর্তন করতে
VVB

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

4
আমার .txtপ্রত্যয়টি দরকার ছিল ।
theblang

1
আমি অন্য কিছু করছি যা কেবল আমাকে এখানে ফিরিয়ে এনেছে এবং আমার .txtপ্রত্যয়টির দরকার নেই । সুতরাং আমি অনুমান করি যে ওয়াইএমএমভি (বা এমএমএমভি বছরের উপর নির্ভর করে)।
theblang

31

কটাক্ষপাত আছে Sakiboy এর মন্তব্য !


পুরানো উত্তর

গ্রেডল 0.9.1 থেকে নিম্নলিখিতটি সমর্থিত:

android.packagingOptions {
    pickFirst 'META-INF/LICENSE.txt'
}

গ্রেডল রিলিজ নোট আরও তথ্য ।


3
এটি একটি আরও ভাল সমাধান কারণ ওপেন সোর্স সফ্টওয়্যার ব্যবহার করার সময় বিকাশকারীদের এই ফাইলগুলি অন্তর্ভুক্ত করার একটি বাধ্যবাধকতা রয়েছে।
Louth স্বাগতম

1
দুর্দান্ত বিকল্প, তবে এই মন্তব্যটি সম্পূর্ণ ভুল। কেবলমাত্র এফআইআরএস লাইব্রেরির লাইসেন্স অন্তর্ভুক্ত করা হবে বাকি সমস্ত কাজ বাদ থাকবে।
ইগোর Čordaš

1
যদি 2 লাইব্রেরি একই .so ফাইলগুলি ব্যবহার করে তবে এটি দরকারী
ফ্যাবিয়ান

আমি কি একই দুটি ক্লাসের একই ক্লাস ফাইলযুক্ত দুটি JAR এর জন্য ব্যবহার করতে পারি? আমার দুটি জেআর অন্তর্ভুক্ত রয়েছে যে উভয়টিতে org / xmlpull / v1 / XMLPullParser.class রয়েছে
উইলসি

2
: @PSIXO, আপনি নীচের আপনার সমস্ত লাইসেন্স অন্তর্ভুক্ত করতে চাইলে উত্তর দেখতে পারেন stackoverflow.com/a/47828425/2371425
Sakiboy

12

আমি যখন অ্যান্ড্রয়েড স্টুডিও 0.8.6 এ লাইব্রেরি httclient-4.3.5 রফতানি করি তখন একই সমস্যা আমার অন্তর্ভুক্ত করা উচিত:

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

পরের জারে লাইব্রেরি জিপ সামগ্রী:

commons-codec-1.6.jar
commons-logging-1.1.3.jar
fluent-hc-4.3.5.jar
httpclient-4.3.5.jar
httpclient-cache-4.3.5.jar
httpcore-4.3.2.jar
httpmime-4.3.5.jar

8

এই বাগটি এখনও 0.8 + / 1.10 এ বিদ্যমান

জ্যাকসনের সাথে

compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.2.2'

এটি সংকলনের আগে আমাকে উপরের পরামর্শের পাশাপাশি অন্তর্ভুক্ত করতে হয়েছিল

exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'

কীভাবে 'মেটা-আইএনএফ / পরিষেবাদি / com.fasterxml.jackson.core.JsonFactory' বর্জন করবেন। আমার কোন ফাইলটি সম্পাদনা করা উচিত?
উমআনুশর্ন

6

এটি একাধিক ত্রুটি

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

এটি যুক্ত করুন ::

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

সদৃশ ফাইলগুলির ক্ষেত্রে এটি সহজ, দিরের JARনীচে ভিতরে তাকান META-INFএবং দেখুন কী কারণে ত্রুটি ঘটছে। এটি একাধিক হতে পারে। আমার ক্ষেত্রে কাউচবেস লাইট প্লাগইন। আপনি আরও প্লাগইন যুক্ত করার সাথে সাথে আপনার আরও ব্যতিক্রমের প্রয়োজন হবে


বোকা প্রশ্ন: সেই জার ফাইলটি কোথায়?
উইলসি

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

4

আমি যখন অ্যান্ড্রয়েড স্টুডিও ১.০.১ এ 'org.springframework.android:spring-android-rest-template .0.০.০.M1' ব্যবহার করেছি তখন একই সমস্যা। আমার এটি অন্তর্ভুক্ত করা দরকারbuild.gradle

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


3

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

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

আমার পোস্ট থেকে PS একই উত্তর এতে: ত্রুটি :: APK এর প্যাকেজিংয়ের সময় ফাইলগুলি নকল করুন


2

সমস্যাটি হ'ল মিতা-আইএনএফ ফোল্ডারটি এতগুলি NOTICEবা একাধিক এন্ট্রি ফিল্টার করবে নাLICENSE কারণ সদৃশ যখন বিল্ডিং এবং এটা তাদের একসঙ্গে কপি করতে tryed করা হয়।

নোংরা দ্রুত ফিক্স:

.jarআপনার .gradle/caches/...ফোল্ডারে ফাইলটি (একটি জিপ সামঞ্জস্যপূর্ণ সরঞ্জাম সহ) খুলুন এবং ফোল্ডারে থাকা ফাইলগুলি মুছে ফেলুন বা পুনরায় নাম দিন META-INFযা ত্রুটির কারণ হয়ে থাকে (সাধারণত NOTICEবা LICENSE)। (আমি ওপি-তেও জানি, তবে গুগল ফোরামটি না পড়া পর্যন্ত আমার পক্ষে এটি সত্যই পরিষ্কার ছিল না)

সম্পাদনা করুন:

এটি ঠিক করা হয়েছিল 0.7.1। বাদ দিতে কেবল বিঘ্নিত ফাইল যুক্ত করুন।

android {
    packagingOptions {
        exclude 'META-INF/LICENSE'
    }
}

ওহ দুঃখিত আমি এখন এটি বুঝতে পারি।
উমআনুশর্ন

সম্ভবত সবচেয়ে খারাপ সম্ভাব্য উত্তর: গ্রেড ক্যাশে জারগুলি পরিবর্তন করা তাদের চেকসামটি পরিবর্তন করতে পারে এবং ফলস্বরূপ দীর্ঘকাল ধরে কাজ করবে না ... তদ্ব্যতীত, সেগুলি আপনার জার নয়
রিডুইডেল

হ্যাঁ, এ কারণেই এটি গা bold় অক্ষরে "ডার্টি কুইক ফিক্স" বলে। এছাড়াও সঠিক সমাধানটি কেবল একটি অনুচ্ছেদে দূরে। আপনি বুঝতে পারেন যে এমন সময়ে লেখা হয়েছিল যেখানে কোনও পরিষ্কার সমাধান ছিল না, তবে লোকেরা এখনও তাদের অ্যাপ্লিকেশনগুলি সঙ্কলন করতে পারে।
প্যাট্রিক ফ্যাভ্রে

2

একই সাথে এখানে

dependencies {
    compile 'org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:1.0.0'
}

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

আমি সেই অদ্ভুত ত্রুটির জন্য 2 দিনের মতো হারিয়েছি ... গ্রেড গ্রেডে কেন এটি এখনও চলছে? এটি newbies জন্য খুব বিরক্তিকর ... যাইহোক, তথ্যের জন্য ধন্যবাদ আমি ভেবেছিলাম এটি আমার কোডে ছিল :)


2

এই ত্রুটিটি কোন ফাইলটিতে আসে তা জানার জন্য গুরুত্বপূর্ণ (আপনার উদাহরণ হিসাবে এটি মেটা-আইএনএফ / লিসেনএসইটিএসটিএসটি), আমার ক্ষেত্রে এটি মিতা-আইএনএফ / লিসেন্সিতে [".txt" ছাড়াই] ছিল, এবং তারপরে ফাইলটিতে মেটা-আইএনএফ / এএসএল ২.০ তাই আমি এই বিল্ডগুলিকে আমার বিল্ডড্রেডলে যুক্ত করেছি:

android {
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/ASL2.0'
    }
}

খুব গুরুত্বপূর্ণ (!) -> ফাইলটির নাম একই স্টাইলে যুক্ত করুন, আপনি এটি ত্রুটি বার্তায় দেখেন: পাঠ্যটি কেস সংবেদনশীল এবং * .txt এবং * এর মধ্যে পার্থক্য রয়েছে ("txt" ছাড়াই) ।


2

আপনি যদি ওপেন সোর্স লাইব্রেরি ব্যবহার করে বিকাশকারী হিসাবে আপনার অংশটি করতে চান তবে আপনার নিজের মধ্যে থাকা সমস্ত ওপেন সোর্স লাইসেন্স অন্তর্ভুক্ত করার চেষ্টা করা উচিত apk। এটি করতে, আপনি নিজের মধ্যে মার্জ পদ্ধতিটি ব্যবহার করতে পারেন packagingOptions

উদাহরণ:

packagingOptions {
        // This will get include every license and notice regardless of what dir it’s in.
        merge '**/LICENSE.txt'
        merge '**/NOTICE.txt'
        merge '**/notice.txt'
        merge '**/license.txt'
        merge '**/NOTICE'
        merge '**/LICENSE'
        merge '**/notice'
        merge '**/license'
        merge '**/LGPL2.1'
        // This will exclude any README files, regardless of the dir or the file type.
        exclude '**/README.*'
}

এই উত্তরটি ব্যবহার করার চেয়ে ভাল pickFirstকারণ সেই পদ্ধতিটি কেবল এটির প্রথম লাইসেন্সটি খুঁজে পেয়েছে যা বাকিটিকে উপেক্ষা করে এবং এই ক্ষেত্রে এটি বেহুদা উপস্থাপন করে।

সুতরাং সংক্ষেপে, mergeআপনি যে কিকাস ওপেন সোর্স লাইব্রেরি ব্যবহার করছেন সেগুলি থেকে সমস্ত লাইসেন্স অন্তর্ভুক্ত করার জন্য পদ্ধতিটি ব্যবহার করুন।

Gradle প্যাকেজিংঅ্যাপশন সম্পর্কিত আরও তথ্য ।


2

আমি এওএসপিতে এই প্রতিশ্রুতিবদ্ধ মন্তব্যটি লক্ষ্য করেছি, এর সমাধানটি হ'ল ডিএসএল ব্যবহার করে কিছু ফাইল বাদ দেওয়া হবে। সম্ভবত যখন 0.7.1 প্রকাশিত হয়।

commit e7669b24c1f23ba457fdee614ef7161b33feee69
Author: Xavier Ducrohet <--->
Date:   Thu Dec 19 10:21:04 2013 -0800

    Add DSL to exclude some files from packaging.

    This only applies to files coming from jar dependencies.
    The DSL is:

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

হ্যাঁ এবং তারা কেবল বিল্ড সাইটে রিলিজ নোটগুলি লিখেছিল তাই আশা করা যায় তারা শীঘ্রই সেন্ট্রালটিতে মস্তকটি আপলোড করবেন যাতে আমরা এটি ব্যবহার করতে পারি!
ম্যাট ওল্ফ

1

আমার ক্ষেত্রে আমাকে কেবল প্রকল্পের বিল্ড.gradle ফাইলটিতে যুক্ত করতে হবে:

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

   ...
}

0

অ্যান্ড্রয়েড স্টুডিও ১.১.০-এ আমার ছোট ছোট মামলার নাম দরকার ছিল:

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

0

ফাইলগুলি "LICENSE.txt" এবং "NOTICE.txt" কেস সংবেদনশীল। সুতরাং স্প্রিং অ্যান্ড্রয়েড লাইব্রেরির জন্য আমাকে যুক্ত করতে হয়েছিল

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

0

LICENSE এর পরে .txt মুছে ফেলা আমার ত্রুটি সরিয়ে দিয়েছে:

packagingOptions {
    exclude 'META-INF/LICENSE'
}

0
  packagingOptions {
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/LGPL2.1'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/notice.txt'
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.