2016-04-18 26 views
8

मैं Windows 7 पर एंड्रॉयड स्टूडियो 2.0 का उपयोग कर रहा है जब मेरे Android परियोजना के निर्माण, मैं निम्नलिखित त्रुटि मिलती है:DuplicateFileException त्रुटि के निर्माण एंड्रॉयड APK

:app:transformResourcesWithMergeJavaResForDebug FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. 
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK com/google/appengine/repackaged/org/apache/commons/codec/language/bm/sep_approx_spanish.txt 
File1: C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.google.appengine\appengine-api-1.0-sdk\1.9.28\e92c18272b555027d9ec666e7a89162f10638314\appengine-api-1.0-sdk-1.9.28.jar 
File2: C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.google.appengine\appengine-endpoints\1.9.28\bf2e8a74bd28e388b3487fc78a0c7adfa592fd5d\appengine-endpoints-1.9.28.jar` 

मैं घंटों के लिए चारों ओर से खुदाई की गई है और नहीं देख सकते हैं ऐसा कुछ भी जो इसका कारण बनता है। मैंने अपनी होम निर्देशिका में हटा दिया है, लेकिन यह सिर्फ इसे सब कुछ पुनर्निर्माण करता है। क्या किसी को इसका कारण पता है?

पूर्ण Gradle उत्पादन:

Executing tasks: [:app:clean, :app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources, :app:assembleDebug] 

Configuration on demand is an incubating feature. 
WARNING: Dependency org.apache.httpcomponents:httpclient:4.0.1 is ignored for debug 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 org.apache.httpcomponents:httpclient:4.0.1 is ignored for release 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 
Incremental java compilation is an incubating feature. 
:app:clean 
:app:preBuild UP-TO-DATE 
:app:preDebugBuild UP-TO-DATE 
:app:checkDebugManifest 
:app:preReleaseBuild UP-TO-DATE 
:backend:appengineDownloadSdk 
:backend:compileJava 
:backend:processResources UP-TO-DATE 
:backend:classes 
:backend:appengineEndpointsGetClientLibs UP-TO-DATE 
:backend:appengineEndpointsExpandClientLibs UP-TO-DATE 
:backend:compileEndpointsSrcJava 
:backend:processEndpointsSrcResources UP-TO-DATE 
:backend:endpointsSrcClasses 
:backend:_appengineEndpointsAndroidArtifact UP-TO-DATE 
:backend:jar UP-TO-DATE 
:app:prepareComAndroidSupportAnimatedVectorDrawable2330Library 
:app:prepareComAndroidSupportAppcompatV72330Library 
:app:prepareComAndroidSupportSupportV42330Library 
:app:prepareComAndroidSupportSupportVectorDrawable2330Library 
:app:prepareComGoogleAndroidGmsPlayServicesAuth840Library 
:app:prepareComGoogleAndroidGmsPlayServicesBase840Library 
:app:prepareComGoogleAndroidGmsPlayServicesBasement840Library 
:app:prepareComGoogleAndroidGmsPlayServicesMeasurement840Library 
:app:prepareDebugDependencies 
:app:compileDebugAidl 
:app:compileDebugRenderscript 
:app:generateDebugBuildConfig 
:app:generateDebugAssets UP-TO-DATE 
:app:mergeDebugAssets 
:app:generateDebugResValues UP-TO-DATE 
:app:processDebugGoogleServices 
:app:generateDebugResources 
:app:mergeDebugResources 
:app:processDebugManifest 
:app:processDebugResources 
:app:generateDebugSources 
:app:mockableAndroidJar UP-TO-DATE 
:app:preDebugUnitTestBuild UP-TO-DATE 
:app:prepareDebugUnitTestDependencies 
:app:preDebugAndroidTestBuild UP-TO-DATE 
:app:prepareDebugAndroidTestDependencies 
:app:compileDebugAndroidTestAidl 
:app:processDebugAndroidTestManifest 
:app:compileDebugAndroidTestRenderscript 
:app:generateDebugAndroidTestBuildConfig 
:app:generateDebugAndroidTestAssets UP-TO-DATE 
:app:mergeDebugAndroidTestAssets 
:app:generateDebugAndroidTestResValues UP-TO-DATE 
:app:generateDebugAndroidTestResources 
:app:mergeDebugAndroidTestResources 
:app:processDebugAndroidTestResources 
:app:generateDebugAndroidTestSources 
:app:compileDebugJavaWithJavac 
Note: Some input files use unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 

:app:compileDebugNdk UP-TO-DATE 
:app:compileDebugSources 
:app:buildInfoDebugLoader 
:app:transformClassesWithExtractJarsForDebug 
:app:transformClassesWithInstantRunVerifierForDebug 
:app:transformClassesWithJavaResourcesVerifierForDebug UP-TO-DATE 
:app:mergeDebugJniLibFolders 
:app:transformNative_libsWithMergeJniLibsForDebug 
:app:processDebugJavaRes UP-TO-DATE 
:app:transformResourcesWithMergeJavaResForDebug FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. 
> com.android.build.api.transform.TransformException:  com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK com/google/appengine/repackaged/org/apache/commons/codec/language/bm/sep_approx_spanish.txt 
File1: C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.google.appengine\appengine-api-1.0-sdk\1.9.28\e92c18272b555027d9ec666e7a89162f10638314\appengine-api-1.0-sdk-1.9.28.jar 
File2: C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.google.appengine\appengine-endpoints\1.9.28\bf2e8a74bd28e388b3487fc78a0c7adfa592fd5d\appengine-endpoints-1.9.28.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: 15.364 secs 

मैं क्या बता सकते हैं, यह दो निर्भरता के बीच परस्पर विरोध:

dependencies { 
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.28' 
    compile 'com.google.appengine:appengine-endpoints:1.9.28' 
    compile 'com.google.appengine:appengine-endpoints-deps:1.9.28' 
    compile 'javax.servlet:servlet-api:2.5' 
    compile 'com.google.http-client:google-http-client-jackson2:1.20.0' 
    compile 'com.google.http-client:google-http-client-gson:1.19.0' 
} 

मुझे लगता है कि इन दो निर्भरता है:

appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.28' 
compile 'com.google.appengine:appengine-endpoints:1.9.28' 
compile 'com.google.appengine:appengine-endpoints-deps:1.9.28' 

मैं मैं इनमें से किसी भी को हटाने में सक्षम नहीं हूं, क्योंकि यह बैकएंड मॉड्यूल पर संकलन त्रुटियों का कारण बनता है। ऐसा लगता है कि उन दो निर्भरताओं लगभग समान हैं। क्या वे दोनों वहां रहना चाहिए? किसी भी सलाह की सराहना की है!

+1

कृपया केवल इन पंक्तियों के लिए, संपूर्ण ग्रैडल कंसोल आउटपुट पोस्ट करें। [यह स्टैक ओवरफ़्लो प्रश्न और उत्तर] देखें (https://stackoverflow.com/questions/36698816/gradle-what-is-a-non-zero-exit-value-and-how-do-i-fix-it# टिप्पणी के लिए टिप्पणी 60986098_36698816)। – CommonsWare

+0

ठीक है, आउटपुट जोड़ा गया है। मैंने आउटपुट को देखा है, लेकिन इसमें से कोई भी मेरे लिए कुछ भी सुझाता है। –

उत्तर

7

@ DSH के जवाब पूरा करने के लिए:

अपनी निर्भरता ट्री में वहाँ 2 जार sep_approx_spanish.txt नामित एक ही फाइल युक्त फ़ाइलें हैं, इस अनुमति नहीं है।

अपनी समस्या का समाधान करने के लिए आपको नीचे ट्रैक करना होगा कि आपकी कौन सी ग्रेडल निर्भरता में appengine-api-1.0-sdk-1.9.28.jar और appengine-endpoints-1.9.28.jar नामक दो जार हैं; यह करने के लिए आप एंड्रॉयड स्टूडियो के टर्मिनल कंसोल खोल सकते हैं और में टाइप करें:

//if ou are on windows 
gradlew dependencies 

//if you are on unix based os 
./gradlew dependencies 

आप Gradle के लिए बहुत कुछ कर रही है देखेंगे, लेकिन एक निश्चित बिंदु पर यह पूरी निर्भरता पेड़ प्रिंट होगा। एक बार जब आप पाते हैं जो 2 निर्भरता समस्या उत्पन्न करने वाले हैं, निर्भरता घोषणाओं

{ 
    exclude "sep_approx_spanish.txt" 
} 
उदाहरण के लिए

तो में से एक के अंत में कोड के इस टुकड़े को जोड़ने अगर दो निर्भरता इन

compile 'com.google.appengine:appengine-endpoints:1.9.28' 
compile 'com.google.appengine:appengine-endpoints-deps:1.9.28 

हैं यदि

compile 'com.google.appengine:appengine-endpoints:1.9.28'{ 
     exclude "sep_approx_spanish.txt" 
    } 
compile 'com.google.appengine:appengine-endpoints-deps:1.9.28 

या

compile 'com.google.appengine:appengine-endpoints:1.9.28' 
compile 'com.google.appengine:appengine-endpoints-deps:1.9.28'{ 
     exclude "sep_approx_spanish.txt" 
    } 
बन जाना चाहिए

इस तरह से आप एपीके के अंदर फ़ाइल के डुप्लिकेशन से परहेज करते हुए, दो पुस्तकालयों में से किसी एक के लिए फ़ाइल को ध्यान में नहीं लेते हैं।

+0

सही जवाब, यह हल हो गया। मुझे इसे काम करने के लिए कई txt फ़ाइलों से गुजरना पड़ा, लेकिन एक बार जब मैं उन्हें सब कुछ हल कर लिया, तो यह ठीक था। इसके अलावा, उत्कृष्ट कार्य बहुत ही सही उत्तर लिख रहा है :) –

+0

यह जानकर खुशी हुई कि यह आपकी मदद करता है :) – Apperside

+1

@JamesFunk ने यह काम आपके लिए किया है? मुझे एक और त्रुटि मिल रही है: त्रुटि: (26, 0) ग्रैडल डीएसएल विधि नहीं मिली: 'com.google.appengine: appengine-endpoints: 1.9.28()' – sublimental

2

त्रुटि आपको बताती है कि आपके एपीके का निर्माण करने के परिणामस्वरूप कॉम/google/appengine/repackaged/org/apache/commons/codec/language/bm/sep_approx_spanish.txt नाम की दो फाइलें होंगी। यह एक विफलता है क्योंकि एपीके में किसी भी दिए गए पथ पर केवल एक फ़ाइल हो सकती है। यह शायद आपके क्लासपाथ में दो अलग-अलग जार फ़ाइलों के कारण होता है जिसमें फ़ाइल होती है। मेरी प्रोजेक्ट में, यह केवल उन फ़ाइलों के साथ हुआ जो वास्तव में रनटाइम पर उपयोग नहीं किए गए थे इसलिए मैंने उन्हें एपीके से पूरी तरह से बाहर कर दिया।

+0

यद्यपि यह तकनीकी रूप से सही है, लेकिन मैंने दूसरे को उत्तर के रूप में चिह्नित किया क्योंकि यह समझाया गया कि इसे ठीक करने के तरीके को भी ठीक किया जाए। –

+0

ठीक है, बढ़िया! :) – dsh

0

@ एपर्ससाइड उत्तर को पूरा करना।

मैंने अपने निर्माण में निम्न पंक्तियों को जोड़कर त्रुटि को ठीक किया।मेरे ऐप मॉड्यूल की फ़ाइल को धीरे-धीरे करें:

android{ 

    packagingOptions { 
      exclude 'com/google/appengine/repackaged/org/apache/commons/codec/language/bm/*' 
      exclude 'com/google/appengine/repackaged/org/codehaus/jackson/impl/VERSION.txt' 
      exclude 'com/google/appengine/repackaged/org/apache/commons/codec/language/*' 
     } 

    (...) 
} 
संबंधित मुद्दे