com.android.build.transform.api.TransformException


158

আমি গুগল সাইন ইন একীভূত করার চেষ্টা করছি, আমার অ্যাপে, আমি এই লাইব্রেরি যুক্ত করেছি:

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 সাহায্য না করে তবে। যারা এখানে গভীর খনন করতে ভালবাসেন তাদের জন্য দু'টি একই রকম সমস্যা (আরও উত্তর সহ):

: অ্যাপ্লিকেশন: শূন্য-বহির্গমন প্রস্থান 2 দিয়ে শেষ হয়েছে ডেক্সডেবাগ এক্সেসেক্সেপশন

ত্রুটি: কার্য ': app: dexDebug' এর জন্য কার্যকর করা ব্যর্থ। com.android.ide.common.process.ProcessException


3
আমার পক্ষে কাজ করেনি। স্টিভের উত্তর - ক্লিনিং কৌশলটি করেছে। আমি সবে AS1.5 পূর্বরূপে আপগ্রেড করেছি
স্কট

6
ন্যায্য হতে আপনার সর্বদা পরীক্ষা করা উচিত যে কোনও সমস্যা পরিষ্কারের মাধ্যমে সমাধান করা যায় কিনা। আমি নিশ্চিত যে এটি তাদের পক্ষে সহায়তা করবে যাঁরা পরিষ্কারের কৌশলটি করেননি।
জুলিয়াসস্ক্রিপ্ট

এই দু'টিই আমার পক্ষে সাহায্য করতে পারেনি - তবে
এএসটি

এর মধ্যে কোনটি আমাকে সহায়তা করে না, তবে আমি AS পুনরায় চালু করার পরে এটি কাজ শুরু করে
ম্যাকিয়েজ বোগুটা

1
আমিও নিচে (একটি Grandt এর উত্তর চেক আউট, পরামর্শ চাই stackoverflow.com/a/33690032/1617737 ) আগে আপনি এই সমাধান সঙ্গে ঝাঁপ।
নিষিদ্ধ-জিওঞ্জিনিয়ারিং

146

আরেকটি বিষয় লক্ষ্য রাখবেন, সেটি হচ্ছে আপনি ব্যবহার করবেন না

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

এটি সমস্ত প্লে পরিষেবাদি আমদানি করবে এবং একক ডেক্স APK এর 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
তুমিই শ্রেষ্ঠ! এটি আমার সমস্যার সমাধান করেছে। অনেকগুলি সমাধানে উল্লিখিত হিসাবে পুনর্নির্মাণ আমার ক্ষেত্রে সহায়তা করে না। যেমনটি আপনি উল্লেখ করেছেন গুগল প্লে পরিষেবা লাইব্রেরিতে প্রচুর উপ-উপাদান রয়েছে এবং সেগুলি যেমন আপনি বলেছিলেন ঠিক তেমনই করা উচিত - একে একে। অনেক ধন্যবাদ, আবার!
ইভান কারাভানিও

2
আমি গত কয়েক দিন এই সমস্যা ছিল। আমি ভেবেছিলাম আমার যা প্রয়োজন কেবল তা গ্রহণ করেছি। তবে, নিম্ন এবং দেখুন, কয়েক ঘন্টা দেখার পরে আমি যখন প্লে-পরিষেবাদি-বিজ্ঞাপনগুলি চেয়েছিলাম তখন সমস্ত প্লে-পরিষেবা আমদানি করছিলাম। অবশ্যই আপনার গ্রেড নির্ভরতা পরীক্ষা করুন!
এমসিএলএলসি

@ এ গ্র্যান্ড্ট আপনি কি উত্তরটি দিয়ে ইভানটির লিঙ্কটি যুক্ত করতে পারবেন ? এতে সমস্ত উপ-উপাদানগুলির নামের একটি তালিকা রয়েছে এবং এটি উত্তরের অংশ হওয়া উচিত, কারণ এটি পরবর্তী পদক্ষেপ প্রত্যেককেই নিতে হবে।
মার্মেল

137

আমার সবেমাত্র আমার প্রকল্পটি পরিষ্কার করতে হয়েছিল এবং তারপরে এটি সফলভাবে নির্মিত হয়েছিল।


4
ধন্যবাদ! এটি নির্দোষভাবে কাজ করে! গৃহীত উত্তরটি অদ্ভুত হবে কারণ আমার প্রকল্পটি 65 কে পদ্ধতির সীমাতে পৌঁছনো দূরে (যার জন্য মাল্টেডেক্সের প্রয়োজন হবে)।
লুই সিএডি

4
হ্যাঁ, পরিষ্কার করার উপায় ছিল। AS 1.4
ফিলিপ

আপনার যদি লাইব্রেরি মডিউল থাকে তবে কাজ করার জন্য প্রকল্পের সমস্ত মডিউলগুলি পরিষ্কার করুন। কেবলমাত্র পৃথক মডিউলগুলিই পরিষ্কার করা আমার পক্ষে কার্যকর হয়নি। পুরো প্রকল্পটি পরিষ্কার করুন।
আখ

কেউ আমাকে বলতে পারেন আমি কীভাবে প্রকল্পটি পরিষ্কার করব? আমি প্রচুর "সংমিশ্রণ" চেষ্টা করছি এবং কিছুই কার্যকর হয় না। আমি প্রত্যেকে "পরিষ্কার" বলি, তবে কীভাবে জানি না। ধন্যবাদ.
আলবার্তো রুবিও

এএস টুলবারে বিল্ড> ক্লিন প্রজেক্টের আওতায় আলবার্তো রুবিও।
চ্যান্টেল ওসেজো

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ডিরেক্টরিগুলি ম্যানুয়ালি মুছে ফেলা হচ্ছে
  • গ্রেডল ক্যাশে অবৈধ এবং অ্যান্ড্রয়েড স্টুডিও পুনরায় চালু করা

ত্রুটি

ত্রুটি: কার্য>>: অ্যাপ্লিকেশন: ট্রান্সফর্মক্লাস উইথডেক্সফোরডেবাগ 'এর জন্য কার্যকর করা ব্যর্থ। com.android.build.api.transform.TransforException: com.android.ide.common.process.ProcessException: org.gradle.process.intern.ExecException: প্রক্রিয়া 'কমান্ড' / লাইব্রেরি / জাভা / জাভা ভার্চুয়ালমাচাইনস / jdk1.8.0_45। jdk / সূচি / হোম / বিন / জাভা '' শূন্য-বহির্গমন প্রস্থান মান 1 দিয়ে সমাপ্ত

দ্রষ্টব্য: ডেক্স টাস্কে উপলভ্য মেমরিটি বাড়ানো নিম্ন মেমরি - লিঙ্কযুক্ত সিস্টেমে পারফরম্যান্স সমস্যা তৈরি করতে পারে ।


এটি আমার পক্ষে কাজ করেছে, কেবলমাত্র সর্বাধিক স্তরের আকারটি সমাধান করতে সমস্যাটি সমাধান করবে, মরিসকে ধন্যবাদ
জায়েদ অ্যাসেম

8

আমি অ্যান্ড্রয়েড স্টুডিও 1.5.1 এবং গ্রেড 1.5.0 এও একই রকম সমস্যার মুখোমুখি হয়েছি। আমাকে কেবল নির্ভরশীলতা থেকে অযাচিত লাইব্রেরিগুলি সরিয়ে ফেলতে হবে যা আমার অ্যাপ্লিকেশনটির বিল্ড.gradle ফাইলটিতে স্বয়ংক্রিয়ভাবে যুক্ত হতে পারে। একটি ছিল: 'com.google.android.gms: play-পরিষেবাদি: 8.4.0' সংকলন করুন। সুতরাং সেরা অনুশীলনের জন্য কেবলমাত্র নির্দিষ্ট প্লে পরিষেবাদির লাইব্রেরি অন্তর্ভুক্ত করার চেষ্টা করুন যেমন বিজ্ঞাপনগুলি অন্তর্ভুক্ত থাকে

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

যদিও

defaultConfig {
    multiDexEnabled true
}

এটি সমস্যার সমাধান করবে, তবে গ্রেডেল কনসোলে প্রচুর নোট সরবরাহ করে, নির্মাণের সময় অন্যান্য আসল সমস্যাগুলি খুঁজে পেতে বিভ্রান্তিকর করে তোলে


স্রেফ প্লে-পরিষেবাদি-মানচিত্রের জন্য আমার গুগল এপিআই ব্যবহার সংকীর্ণ করা কৌশলটি করেছে। গুগলের প্লে-পরিষেবাদি এপিআই-র বিভিন্ন উপাদানগুলির আনুষ্ঠানিক ভাঙ্গন এখানে রয়েছে: developers.google.com/android/guides/…
jperl ২

4

আপনি অ্যান্ড্রয়েডের ডকুমেন্টেশন দেখতে পারেন

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

আমি AS 1.5.1 ব্যবহার করছি এবং একই সমস্যার মুখোমুখি হচ্ছি। তবে কেবল প্রকল্পটি পরিষ্কার করা ঠিক হবে না, তাই আমি কিছু চেষ্টা করেছি।

  • পরিষ্কার প্রকল্প
  • পুনরায় আরম্ভ করুন
  • সিঙ্ক প্রকল্প

এটি আমার সাথে কাজ করেছে, তাই আমি আশা করি এটি সাহায্য করবে।


3
প্রকল্পগুলির জন্য এটি অর্থহীন হবে যা k৪ কে ডেক্স পদ্ধতির সীমা অতিক্রম করেছে।
ইগোরগানাপলস্কি

3

আমার ক্ষেত্রে বিল্ডটুলস ভার্সনটি "24" থেকে "23.0.2" তে পরিবর্তন করুন, সমস্যার সমাধান করুন।


2

আমার ক্ষেত্রে ব্যতিক্রম ঘটেছিল কারণ সমস্ত গুগল প্লে পরিষেবা এক্সটেনশানগুলি নিম্নরূপে একই সংস্করণ সহ নয়

 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'
...
}

লোকাল.প্রোপার্টিগুলিতে পরেরটি যুক্ত করুন

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

এর পরে অ্যাপ্লিকেশন ক্লাসে আপনাকে মাল্টিডেক্সও যুক্ত করতে হবে।

 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);
   }
}

ম্যানিফেস্ট.এক্সএমএলে লাইন কোডটি যুক্ত করতে ভুলবেন না

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

ত্রুটি সমাধানের জন্য এটিই যথেষ্ট ছিল: কার্য ': অ্যাপ্লিকেশন: ট্রান্সফর্মক্লাস উইথডেক্সফরডব্যাগের জন্য কার্যকর করা ব্যর্থ। JavaMaxHeapSize "2g" এবং স্থানীয়.প্রপার্টি org.gradle.jvmargs = -Xmx2048m 2 গিগাবাইটের সাথে build.gradle এ খুব ভাল পরীক্ষা করুন।


2
শুধুমাত্র ইংরেজিতে পোস্ট করুন। এটি দেখতে একটি উত্তরের মত দেখাচ্ছে, এটি মুছে ফেলা লজ্জার বিষয় হবে কারণ এটি ইংরেজিতে নেই।
তুনাকি

1

আমি একই সমস্যাটি যখন গিটের মাধ্যমে পুরানো সংস্করণে ফিরে আসি, এবং সেই সংস্করণটিতে একটি তৃতীয় পক্ষের এপিআই এর পূর্ববর্তী জাজার লাইব্রেরি ছিল এবং কোনও কারণে একই এসডিকে উভয় বয়াম, কেবল ভিন্ন সংস্করণে / লিবস ফোল্ডারে ছিল ।


1

প্রথমে মধ্যস্থতাকারী ফাইলগুলি মুছুন আপনার অ্যাপ্লিকেশন ফোল্ডার \ অ্যাপ। বিল্ড \ মধ্যস্থতা বা আপনার প্রকল্পটি পরিষ্কার করুন এবং তারপরে পুনর্নির্মাণ করুন।

অন্তর্ভুক্ত

multiDexEnabled true

অর্থাত

defaultConfig {
        multiDexEnabled true
}

এটা আমার জন্য কাজ


1

সর্বশেষ ব্যবহারের জন্য আমি এই সমস্যাটি পরিবর্তন দ্বারা সমাধান করেছি buildToolsVersion

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

1

সর্বোপরি যদি আপনার পক্ষে কাজ না করে তবে একটি সহায়ক উত্তর।

আপনার অ্যাপ্লিকেশন গ্রেড ফাইল এ যান,

সমস্ত নির্ভরতা সংস্করণগুলি যেমন (com.example.demo: +) এর তুলনায় কোনও আপেক্ষিক মানের চেয়ে যথাযথ সংস্করণ কোডের সাথে উল্লেখ করা হয়েছে তা পরীক্ষা করুন Check

পূর্ববর্তী - বাস্তবায়ন 'com.google.api-ক্লায়েন্ট: গুগল-এপি-ক্লায়েন্ট-অ্যান্ড্রয়েড: +'

পরে - বাস্তবায়ন 'com.google.api-ক্লায়েন্ট: গুগল-এপি-ক্লায়েন্ট-অ্যান্ড্রয়েড: 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

কর্ডোভা প্লাগইনটির জন্য আপনার এই রেফারেন্সটি যুক্ত করতে চাইলে আপনার প্লাগইন.এক্সএমএল ফাইলটিতে পরবর্তী লাইন যুক্ত করুন।

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

0

বিভিন্ন নির্ভরতাগুলির যদি একই জারে থাকে তবে এই বিল্ড ত্রুটিও ঘটায়।

উদাহরণ স্বরূপ:

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

যদি "লাইব্রেরি 1" এবং "লাইব্রেরি 2" এর নামের একই জার থাকে তবে এটি xxx.jarত্রুটি ঘটায় ।


0

এটি আমার সাথে একিলিপসের স্মৃতি ফাঁস হওয়ার কারণে ঘটেছিল। আমাকে আমার কম্পিউটার পুনরায় চালু করতে হবে।


0

আমি গ্রেডের মধ্যে কয়েকটি পিএনজি এবং বিল্ড নম্বর পরিবর্তন করেছি এবং এখন আমি এটি পেয়েছি। পরিস্কার করা এবং পুনরায় আরম্ভের কোনও পরিমাণই সহায়তা করে না। তাত্ক্ষণিক চালকে অক্ষম করা আমার জন্য এটি স্থির করে। YMMV


0

আমার কাছে একই বিকল্প ছিল এবং তাত্ক্ষণিকভাবে আমি ইনস্ট্যান্ট রানটি বন্ধ করে দেওয়ার সাথে সাথে এটি আমার এপিআই 16 ডিভাইসে দুর্দান্ত কাজ করেছে, কিন্তু এপিআই 24 ডিভাইসে এটি ইনস্ট্যান্ট রান দিয়ে দুর্দান্ত কাজ করেছে।

আশা করি এটি একই সমস্যার কারও পক্ষে সহায়তা করে


0

কেবল বিল্ড - সম্পাদনা প্রকারের ধরণগুলি - বৈশিষ্ট্যগুলি ট্যাব - বিল্ড প্রকারের সংস্করণে যান এবং এটিকে 23.0.1 ভারে ডাউনগ্রেড করুন। ঠিক আছে ক্লিক করুন। এটি অ্যান্ড্রয়েড স্টুডিও 1.5 এর জন্য কাজ করে। এটা আমার জন্য কাজ করেছে।


0

লেখার উত্তরটি গ্রেড পুট ডিফল্টকনফিগ {মাল্টিডেক্সএইনেবলড ট্রু} তারপরে ম্যানিফেস্ট অ্যান্ড্রয়েডে অ্যাপ্লিকেশনের নাম : নাম = "android.support.m মাল্টিডেক্স। মাল্টিডেক্স অ্যাপ্লিকেশন " ইচ্ছুক এই উত্তরটি কারও পক্ষে নরকপূর্ণ


0

এই কোডটি সমস্যার সমাধান করেছে

defaultConfig {
        multiDexEnabled true
}

গুগল সাইন ইন ভিজিট কার্যকর করার সবচেয়ে সহজ পদ্ধতির জন্য: গুগল সাইন ইন অ্যান্ড্রয়েড

চেষ্টাও করুন

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'

পরিষ্কার এবং পুনর্নির্মাণ।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.