com.android.build.transform.api.TransformException


158

मैं अपने ऐप्लिकेशन में Google साइन इन को एकीकृत करने का प्रयास कर रहा हूं, मैंने इन पुस्तकालयों को जोड़ा है:

compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'

इसके अलावा प्रोजेक्ट बिल्ड ग्रेडेल में जोड़ें:

classpath 'com.google.gms:google-services:1.4.0-beta3'

ऐप बिल्ड बिल्ड अपग्रेड के लिए प्लगइन भी जोड़ें:

apply plugin: 'com.google.gms.google-services'

इसके बाद आवश्यक अनुमतियां जोड़ें, लेकिन जब मैंने अपना ऐप चलाने का प्रयास किया, तो यह त्रुटि मिली:

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

जवाबों:


312

multiDexEnabled trueअपने एप्लिकेशन build.gradle फ़ाइल में जोड़ने का प्रयास करें ।

 defaultConfig {
    multiDexEnabled true
}

संपादित करें:

पहले स्टीव के जवाब की कोशिश करो । मामले में यह अक्सर होता है या पहला कदम मदद नहीं कर multiDexEnabledसकता है। जो लोग यहां गहरी खुदाई करना पसंद करते हैं उनके लिए कुछ ऐसे ही मुद्दे हैं (अधिक जवाब के साथ):

: app: dexDebug ExecException गैर-शून्य निकास मान 2 के साथ समाप्त हो गया

त्रुटि: कार्य के लिए निष्पादन विफल रहा ': app: dexDebug'। com.android.ide.common.process.ProcessException


3
मेरे लिए काम नहीं किया। स्टीव का जवाब - सफाई ने किया छल मैं बस 211 पर AS1.5 पूर्वावलोकन
स्कॉट

6
निष्पक्ष रहने के लिए आपको हमेशा यह जांचना चाहिए कि क्या कोई समस्या सफाई से हल हो सकती है। मुझे विश्वास है कि इससे उन लोगों को मदद मिलेगी जिनकी सफाई ने चाल नहीं चली।
जूलियसस्क्रिप्ट

इन दोनों ने मेरे लिए मदद नहीं की - लेकिन फिर से शुरू करने के बाद अंत में चाल
चली

इनमें से कुछ ने मेरी मदद की, लेकिन मैंने
मैकियज बोगुटा

1
इससे पहले कि आप इस समाधान के साथ कूदें , मैं नीचे दिए गए ए ग्रैंड्ट के उत्तर (नीचे stackoverflow.com/a/33690032/1617737 ) की जाँच करने की सलाह दूंगा ।
प्रतिबंध-जियोइंजीनियरिंग

146

देखने के लिए एक और बात, यह है कि आप उपयोग नहीं करते हैं

compile 'com.google.android.gms:play-services:8.3.0'

यह सभी प्ले सेवाओं को आयात करेगा, और यह केवल एक हैलो दुनिया की तुलना में केवल एक डेक्स एपीके की 65535 विधि सीमा को पार करने के लिए थोड़ा अधिक लेगा।

उदाहरण के लिए, हमेशा केवल आपकी आवश्यक सेवाएँ निर्दिष्ट करें:

compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-plus:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'

10
आप सबसे अच्छे हो! इससे मेरी समस्या हल हो गई। समाधान के कई मामलों में उल्लिखित पुनर्निर्माण मेरे मामले में मदद नहीं करता है। जैसा कि आपने उल्लेख किया है कि Google Play Services लाइब्रेरी में बहुत सारे सब-कमर्स हैं और उन्हें वैसे ही आयात किया जाना चाहिए जैसा आपने कहा है - एक-एक करके। बहुत धन्यवाद, फिर से!
इवान कारवानियो

2
पिछले कुछ दिनों में मेरा यह मुद्दा था। मुझे लगा कि मुझे केवल वही चाहिए जो मुझे चाहिए। लेकिन, कम और निहारना, घंटों की तलाश के बाद मैं सभी प्ले-सेवाओं का आयात कर रहा था जब मैं चाहता था कि सभी प्ले-सर्विसेज-विज्ञापन थे। निश्चित रूप से अपने वर्गीकृत निर्भरता लोगों की जाँच करें!
MCLLC

@ A.Grandt क्या आप उस लिंक को जोड़ सकते हैं जो इवान ने आपके उत्तर में दिया है? इसमें सभी सब कम्युटरों के नामों की एक सूची है और यह उत्तर का हिस्सा होना चाहिए, क्योंकि यह अगला कदम है जिसे सभी को लेना है।
मुरमेल

137

मुझे बस अपनी परियोजना को साफ करना था और फिर बाद में इसका सफलतापूर्वक निर्माण किया।


4
धन्यवाद! यह निर्दोष रूप से काम करता है! स्वीकृत उत्तर अजीब होगा क्योंकि मेरी परियोजना 65K विधि सीमा (जिसे मल्टीडेक्स की आवश्यकता होगी) तक पहुंचने से दूर है।
लुईस सीएडी

4
हां, सफाई तो जाने का रास्ता था। एएस 1.4
फेलिप कैलदास

यदि आपके पास पुस्तकालय मॉड्यूल हैं, तो इसे काम करने के लिए परियोजना के सभी मॉड्यूल को साफ करें। केवल व्यक्तिगत मॉड्यूल की सफाई ने मेरे लिए काम नहीं किया। ENTIRE प्रोजेक्ट को साफ़ करें।
अख

क्या कोई मुझे बता सकता है कि मैं परियोजना को कैसे साफ करूं? मैं "संयोजन" की बहुत कोशिश कर रहा हूं और कुछ भी काम नहीं करता। मैं देख रहा हूं कि हर कोई "साफ" कहता है, लेकिन यह नहीं जानता कि कैसे। धन्यवाद।
अल्बर्टो रूबियो

@AlbertoRubio, अंडर टूलबार में बिल्ड> क्लीन प्रोजेक्ट के तहत।
चैनेल ओसेजो

23

जब मैंने अपने प्रोजेक्ट में कुछ नए तरीके जोड़े तो यह त्रुटि मुझे दिखाई देने लगी। मुझे पता था कि मैं 65k विधि की सीमा के आसपास नहीं था और अगर मैं इसे मदद कर सकता हूं तो मैं अपने प्रोजेक्ट के लिए मल्टीडेक्स समर्थन को सक्षम नहीं करना चाहता।

मैंने :app:transformClassesForDexForDebugटास्क के लिए उपलब्ध मेमोरी को बढ़ाकर इसे हल किया । मैंने javaMaxHeapSize को निर्दिष्ट करके ऐसा किया gradle.build

gradle.build

android {
    ...
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
}

मैंने इस समस्या के अन्य सामान्य समाधानों के साथ कोई सफलता नहीं होने के बाद यह कोशिश की:

  • एक परियोजना चल रही है clean
  • मैन्युअल रूप से /app/buildऔर /buildमेरी परियोजना से निर्देशिकाओं को हटाना
  • ग्रेडेल कैश को अमान्य करना और Android स्टूडियो को पुनरारंभ करना

त्रुटि

त्रुटि: कार्य के लिए निष्पादन विफल रहा> ': ऐप: transformClassesWithDexForDebug'। com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: प्रक्रिया 'कमांड' / लिंक: Java/JavaVirtualMachines/jdk1.8.0_45। jdk / Contents / Home / bin / java '' गैर-शून्य निकास मान 1 के साथ समाप्त हुआ

नोट: DEX कार्य के लिए उपलब्ध मेमोरी को बढ़ाने से सिस्टम पर कम मेमोरी - लिंक के साथ प्रदर्शन समस्याएं हो सकती हैं ।


यह मेरे लिए काम करता है, केवल अधिकतम हीप आकार निर्दिष्ट करने के लिए समस्या को हल करेगा, धन्यवाद मौरिस
Zeyad Assem

8

मुझे एंड्रॉइड स्टूडियो 1.5.1 और ग्रेडेल 1.5.0 में भी इसी तरह के मुद्दे का सामना करना पड़ा। मुझे सिर्फ अवांछित पुस्तकालयों को निर्भरता से हटाना होगा जो मेरे ऐप की बिल्ड.ग्रेड फ़ाइल में स्वचालित रूप से जोड़े जा सकते हैं। एक था: संकलन 'com.google.android.gms: प्ले-सर्विसेज: 8.4.0'। इसलिए सर्वोत्तम प्रथाओं के लिए केवल विशिष्ट खेल सेवाओं को शामिल करने का प्रयास करें जैसे कि विज्ञापनों में केवल शामिल हैं

dependencies {
    compile 'com.google.android.gms:play-services-ads:8.4.0'
}

हालांकि

defaultConfig {
    multiDexEnabled true
}

यह भी समस्या को हल करेगा, लेकिन ग्रेड कंसोल में बहुत सारे नोट्स प्रदान करता है, जिससे निर्माण के दौरान अन्य वास्तविक मुद्दों को खोजने के लिए भ्रमित हो जाता है


मेरे Google एपीआई उपयोग को केवल प्ले-सर्विसेज-मैप्स में दर्शाने से चाल चली। यहाँ Google की प्ले-सर्विसेज API में विभिन्न घटकों का आधिकारिक
विराम है

4

आप Android के दस्तावेज़ देख सकते हैं

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

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

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

3

मैं 1.5.1 का उपयोग कर रहा हूं और उसी समस्या का सामना कर रहा हूं। लेकिन सिर्फ इस परियोजना की सफाई सिर्फ अभ्यस्त है, इसलिए मैंने कुछ कोशिश की।

  • स्वच्छ परियोजना
  • पुनः आरंभ करें
  • सिंक प्रोजेक्ट

इसने मेरे साथ काम किया, इसलिए मुझे उम्मीद है कि इससे मदद मिलेगी।


3
यह उन परियोजनाओं के लिए निरर्थक होगा जो 64k डेक्स विधि की सीमा को पार कर चुके हैं।
इगोरगानापोलस्की जूल


2

मेरे मामले में अपवाद हुआ क्योंकि सभी Google Play सेवा एक्सटेंशन निम्नानुसार एक ही संस्करण के साथ नहीं हैं

 compile 'com.google.android.gms:play-services-plus:9.8.0'
 compile 'com.google.android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.android.gms:play-services-analytics:8.3.0'

जब मैंने इसे बदल दिया तो यह काम कर गया

compile 'com.google.android.gms:play-services-plus:9.8.0'
 compile 'com.google.android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.android.gms:play-services-analytics:9.8.0'

1
मैंने सभी उत्तरों को ब्राउज़ नहीं किया था और मैंने आपका नहीं देखा था, इसलिए ... मुझे पता चला कि यह लगभग एक घंटे बाद मेरा मामला था: /
denispyr

2

मैंने इसे अगले के साथ हल किया:

मैंने मल्टीडेक्स को कॉन्फ़िगर किया

Build.gradle में आपको अगले को जोड़ना होगा।

android {
...
   defaultConfig {
       ...
       // Enabling multidex support.
       multiDexEnabled true
       ...
   }
   dexOptions {
      incremental true
      maxProcessCount 4 // this is the default value
      javaMaxHeapSize "2g"
   }
...
}
dependencies {
...
   compile 'com.android.support:multidex:1.0.1'
...
}

अगले एक को local.properties में जोड़ें

org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

उसके बाद Application वर्ग में आपको Multidex भी जोड़ना होगा।

 public class MyApplication extends MultiDexApplication {

   @Override
   public void onCreate() {
       super.onCreate();
       //mas codigo
   }

   @Override
   protected void attachBaseContext(Context base) {
       super.attachBaseContext(base);
       MultiDex.install(this);
   }
}

Manifest.xml में लाइन कोड जोड़ना न भूलें

<application
    ...
    android:name=".MyApplication"
    ...
/>

बग के समाधान के लिए बस इतना ही पर्याप्त था: कार्य के लिए निष्पादन विफल रहा ': ऐप: transformClassesWithDexForDebug। JavaMaxHeapSize "2g" और local.properties org.gradle.jvmargs = -Xmx2048m 2 गीगाबाइट के साथ build.gradle की बहुत अच्छी तरह से जाँच करें।


2
कृपया अंग्रेजी में ही पोस्ट करें। यह एक अच्छे उत्तर की तरह लगता है, इसे हटाना शर्म की बात होगी क्योंकि यह अंग्रेजी में नहीं है।
तुनकी

1

जब मैं पुराने संस्करण पर वापस आया तो मुझे एक ही समस्या थी, और उस संस्करण में पिछले 3। Api का एक पुस्तकालय था, और किसी कारण से दोनों एक ही एसडी के जार, बस अलग-अलग संस्करणों में थे / libs फ़ोल्डर ।


1

सबसे पहले इंटरमीडिएट को हटाएं आपके एपीपी फोल्डर \ एप \ बिल्ड \ इंटरमीडिएट या अपनी परियोजना को साफ करें और फिर पुनर्निर्माण करें।

जोड़ने की बात

multiDexEnabled true

अर्थात

defaultConfig {
        multiDexEnabled true
}

यह मेरे लिए काम है


1

मैंने नवीनतम का उपयोग करने के लिए परिवर्तन द्वारा इस मुद्दे को हल किया buildToolsVersion

android {
    //...
    buildToolsVersion '26.0.2' // change from '23.0.2'
    //...
}

1

एक उपयोगी जवाब अगर ऊपर सभी आप के लिए काम नहीं किया।

अपनी एप्लिकेशन श्रेणी फ़ाइल पर जाएं,

सभी निर्भरता संस्करणों की जाँच करें जैसे कि किसी भी सापेक्ष मूल्य के बजाय उचित संस्करण कोड के साथ उल्लेख किया गया है (com.example.demo: +)

पिछला - कार्यान्वयन 'com.google.api-client: google-api-client-android: +'

के बाद - कार्यान्वयन 'com.google.api-client: google-api-client-android: 1.30.0'


0

यदि आप नवीनतम ग्रेडेल संस्करण का उपयोग कर रहे हैं classpath 'com.android.tools.build:gradle:1.5.0' and classpath 'com.google.gms:google-services:1.4.0-beta3', तो एसडीके प्रबंधक से नवीनतम समर्थन रिस्पांसरी को अपडेट करने का प्रयास करें और पूरे प्रोजेक्ट का पुनर्निर्माण करें।


0

यदि आपको कॉर्डोवा प्लगइन के लिए इस संदर्भ को जोड़ने की आवश्यकता है, तो अपने plugin.xml फ़ाइल में अगली पंक्ति जोड़ें।

<framework src="com.android.support:support-v4:+" />

0

यदि अलग-अलग निर्भरताओं में एक ही जार है तो यह बिल्ड एरर का कारण बनता है।

उदाहरण के लिए:

compile('com.a.b:library1');
compile('com.c.d:library2');

यदि "Library1" और "Library2" में एक ही जार नाम है xxx.jar, तो यह ऐसी त्रुटि करेगा।



0

मैंने pngs के कुछ जोड़े और gradle में बिल्ड नंबर बदल दिया और अब मुझे यह मिल गया है। सफाई और पुनः आरंभ करने में कोई मदद नहीं की। इंस्टैंट रन को अक्षम करना मेरे लिए इसे तय करता है। YMMV


0

मेरे पास एक ही विकल्प था और जैसे ही मैंने इंस्टेंट रन को बंद किया, उसने मेरे API16 डिवाइस पर ठीक काम किया, लेकिन API24 डिवाइस पर इंस्टेंट रन के साथ ठीक काम किया।

आशा है कि यह किसी को एक ही मुद्दा होने में मदद करता है


0

बस बिल्ड - एडिट बिल्ड टाइप्स - प्रॉपर्टीज टैब - बिल्ड टाइप वर्जन पर जाएं और इसे 23.0.1 पर डाउनग्रेड करें। ओके पर क्लिक करें। यह एंड्रॉइड स्टूडियो 1.5 के लिए काम करता है। इसने मेरे लिए काम किया।


0

लिखने जवाब में है Gradle डाल defaultConfig {सच multiDexEnabled} तो में प्रकट आवेदन नाम एंड्रॉयड: नाम = "android.support.multidex.MultiDexApplication" इस उत्तर इच्छा कुछ एक को hellpful है


0

इस कोड ने समस्या हल कर दी

defaultConfig {
        multiDexEnabled true
}

यात्रा में Google साइन इन करने के सबसे आसान तरीके के लिए: android में Google साइन इन करें

भी आज़माएं

dexOptions {
        javaMaxHeapSize "4g" 
    }

विभिन्न सेवाओं के लिए एक ही संस्करण संख्या भी रखें।


0

मैंने इस समस्या को जोड़कर हल किया build.gradle:

defaultConfig {
    multiDexEnabled true
}

में local.properties,

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

निर्भरता का उल्लेख करें:

compile 'com.android.support:multidex:1.0.1'

स्वच्छ और पुनर्निर्माण।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.