2015-09-22 10 views
5

मैं अपने आर-पुस्तकालय (एक Maven परियोजना, Jayway द्वारा android-Maven-प्लगइन के साथ बनाया गया है) का उपयोग करने की कोशिश कर रहा हूँ एक Gradle परियोजना में लेकिन, जब मैं gradle assembleDebug चलाने के लिए, मैं निम्नलिखित अपवाद हो रही है:एंड्रॉयड Gradle अपवाद: "एक से अधिक डेक्स फ़ाइलें परिभाषित" के अंतर्गत दोहराया वर्गों विस्फोट-आर

UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/actions/ItemListIntents; 
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) 
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) 
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) 
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) 
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502) 
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) 
at com.android.dx.command.dexer.Main.run(Main.java:277) 
at com.android.dx.command.dexer.Main.main(Main.java:245) 
at com.android.dx.command.Main.main(Main.java:106) 

अगर मैं अपने प्रोजेक्ट में उस वर्ग की खोज, एंड्रॉयड स्टूडियो पाता दो परिणाम:

  • ListItemIntents (com.google.android.gms.action) play-services-base-7.0.0(classes.jar)
  • ListItemIntents (com.google.android.gms.action) aar-library(classes.jar)

निरीक्षण चल रहा है gradle dependencyInsight --dependency play-services-base --configuration compile मैं: ListIntentIntents (और, जाहिर है, पूरे प्ले-सेवाओं:

com.google.android.gms:play-services-base:7.0.0 
+--- com.google.android.gms:play-services-gcm:7.0.0 
| \--- aar-library:core:1.0.10-SNAPSHOT 
|   \--- compile     
+--- com.google.android.gms:play-services-location:7.0.0 
| \--- com.nexse.mobile.betting.core:core:1.0.10-SNAPSHOT (*) 
\--- com.google.android.gms:play-services-maps:7.0.0 
    \--- com.google.android.gms:play-services-location:7.0.0 (*) 

(*) - dependencies omitted (listed previously) 

समस्या आर-पुस्तकालयclasses.jar में है आधार मॉड्यूल) पहले से ही है! मुझे क्या करना चाहिए com.google.android.gms फ़ोल्डर के अंतर्गत एक, एक aar-library तहत फ़ोल्डर

: तो

my-gradle-project/app/build/intermediates/exploded-aar/ 

अंदर मैं प्ले-सेवाओं आधार मॉड्यूल के दो संदर्भों है?

उत्तर

1

मुझे अपराधी मिल गया है! मैं पुराने एंड्रॉइड मेवेन प्लगइनcom.jayway.maven.plugins.android.generation2

नया एक com.simpligility.maven.plugins त्रुटि का निर्धारण कर रहा था।

वैसे भी मदद के लिए धन्यवाद।

0

आप इस प्रकार अपने Gradle फ़ाइल में सच सक्षम multidex सहित कोशिश कर सकते हैं:

android { 
compileSdkVersion 22 
buildToolsVersion "23.0.0" 

    defaultConfig { 
     minSdkVersion 14 //lower than 14 doesn't support multidex 
     targetSdkVersion 22 

     // Enabling multidex support. 
     multiDexEnabled true 
    } 
} 
+2

सबसे पहले आपकी प्रतिक्रिया के लिए धन्यवाद। कि काम करने के लिए प्रतीत नहीं होता: ': एप्लिकेशन: packageAllDebugClassesForMultiDex विफल त्रुटि: निष्पादन कार्य के लिए विफल ': एप्लिकेशन: packageAllDebugClassesForMultiDex'। > java.util.zip.ZipException: डुप्लिकेट प्रविष्टि: com/google/android/gms/actions/itemListIntents.class' हालांकि, मेरे ऐप में 8 minsdkVersion के रूप में है, इसलिए मैं उस पथ का पालन नहीं करना चाहूंगा। –

0

If the number of method references in your app exceeds the 65K limit, your app may fail to compile. You may be able to mitigate this problem when compiling your app by specifying only the specific Google Play services APIs your app uses, instead of all of them.

ऊपर बयान https://developers.google.com/android/guides/setup से लिया जाता है।

पहले: (एंड्रॉयड स्टूडियो) मेनू बार में Build मद से Clean Project पर क्लिक करें।

दूसरा: व्यक्तिगत निर्भरताओं को जोड़ने का प्रयास करें। उदाहरण यदि आप केवल स्थान सेवाओं का उपयोग करना चाहते हैं तो अपने build.gradle में केवल compile 'com.google.android.gms:play-services-location:7.8.0' जोड़ें।

संबंधित मुद्दे