2016-05-03 7 views
8

मैं जहाँ मैं स्थानीय इकाई परीक्षण (परीक्षण फ़ोल्डर) और इंस्ट्रूमेंटेशन इकाई परीक्षण मामलों (androidTest फ़ोल्डर) है एक आवेदन है चलाते समय मार। अभी अगर मैं एंड्रॉइडटेस्ट फ़ोल्डर पर क्लिक करता हूं, और "सभी टेस्ट चलाएं" पर क्लिक करता है, तो यह निम्न अपवाद फेंकता है।Multidex सीमा इकाई परीक्षण मामलों

Error:Error converting bytecode to dex: 
Cause: com.android.dex.DexIndexOverflowException: field ID not in [0, 0xffff]: 65536 

Error:Execution failed for task ':news-app:transformClassesWithDexForDebugAndroidTest'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2 

यह अपवाद है क्योंकि multidex सीमा तक पहुंच गए की स्पष्ट रूप से है। लेकिन मैंने डीबग बिल्ड के लिए multi-dex सक्षम किया है। मुझे लगता है कि जब उपकरण परीक्षण के मामले चलाए जाते हैं, तो वे डीबग मोड में चलाए जाते हैं। तो यह अपवाद क्यों हो रहा है?

मैं build.gradle फ़ाइल

apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 


android { 
    compileSdkVersion 22 
    buildToolsVersion 22.0.1 

    defaultConfig { 
    minSdkVersion 14 
    targetSdkVersion 22 
    applicationId "com.xyz" 
    } 


    buildTypes { 

    debug { 
     minifyEnabled false 
     shrinkResources false 
     multiDexEnabled true 
    } 

    release { 
     minifyEnabled true 
     shrinkResources true 
     multiDexEnabled false 
    } 
    } 

    lintOptions { 
    warning 'InvalidPackage', 'GradleCompatible' 
    } 

    dexOptions { 
    preDexLibraries true 
    incremental true 
    jumboMode = true 
    javaMaxHeapSize "4g" 
    } 


    } 
} 

} 
+0

क्या आपको कभी कोई समाधान मिला? – Sufian

+0

इस के लिए अभी तक कोई समाधान नहीं मिला। – thedarkpassenger

+0

मेरे पास 'androidTestCompile' के साथ कुछ अनावश्यक आयात थे और उन्हें समस्या को हल करने से हटा दिया गया। – Sufian

उत्तर

0

समझे इस काम करने संलग्न कर रहा हूँ। मैंने app मॉड्यूल के build.gradle में multiDexEnabled true डाल दिया था। लेकिन मैं कुछ अन्य मॉड्यूल में यूनिट परीक्षण चला रहा था। यह पता चला है कि मुझे उस मॉड्यूल में multiDexEnabled true जोड़ने की आवश्यकता है।

android { 
    buildTypes { 
    debug { 
     multiDexEnabled true 
    } 
    }} 
संबंधित मुद्दे