অ্যান্ড্রয়েড স্টুডিও গুগল জেআর ফাইলের ফলে জিসি ওভারহেড সীমা ত্রুটি ছাড়িয়ে গেছে


210

আমি ওএস এক্স-এ অ্যান্ড্রয়েড স্টুডিও ব্যবহার করছি I আমি এই ত্রুটি বার্তাটি পাচ্ছি:

ব্যর্থতা: বিল্ড ব্যতিক্রম ব্যতীত ব্যর্থ।

  • কী ভুল হয়েছে: কার্য ': অ্যাপ্লিকেশন: প্রিডেক্সডেবাগ' এর জন্য কার্যকর করা ব্যর্থ। com.android.ide.common.intern.LoggedErrorException: কমান্ড চালাতে ব্যর্থ: / অ্যাপ্লিকেশনস / অ্যান্ড্রয়েড স্টুডিও.এপ / এসডিকি / বিল্ড-টোলস / অ্যানড্রয়েড ৪.৪ ডাব্লু / ডিডি --ডেক্স - আউটপুট / ব্যবহারকারী / অ্যালেক্স / অ্যান্ড্রয়েড স্টুডিওপ্রজেক্টস / সাইলেন্টএসএমএস / অ্যাপ / বিল্ড / ইন্টারমিডিয়েটস / প্রি-ডেক্সড / ডিবাগ / অ্যান্ড্রয়েড-4.3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar / ব্যবহারকারী / অ্যালেক্স / অ্যান্ড্রয়েড স্টুডিওপ্রজ / সিলেন্ট এসএমএস / অ্যাপ্লিকেশন_আন্দ্রয়েড 4

    ত্রুটি কোড: 3 আউটপুট:

  UNEXPECTED TOP-LEVEL ERROR:
  java.lang.OutOfMemoryError: GC overhead limit exceeded
      at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:665)
      at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:288)
      at com.android.dx.cf.code.Simulator$SimVisitor.visitLocal(Simulator.java:612)
      at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:412)
      at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94)
      at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:782)
      at com.android.dx.cf.code.Ropper.doit(Ropper.java:737)
      at com.android.dx.cf.code.Ropper.convert(Ropper.java:346)
      at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282)
      at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
      at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
      at com.android.dx.command.dexer.Main.processClass(Main.java:682)
      at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
      at com.android.dx.command.dexer.Main.access$600(Main.java:78)
      at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
      at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
      at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
      at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
      at com.android.dx.command.dexer.Main.processOne(Main.java:596)
      at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
      at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
      at com.android.dx.command.dexer.Main.run(Main.java:230)
      at com.android.dx.command.dexer.Main.main(Main.java:199)
      at com.android.dx.command.Main.main(Main.java:103)

আমি এই গ্রন্থাগারটি ব্যবহার করছি:

http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/

আমি জেআর ফাইলটি টেনে এনে আমার প্রকল্পে যুক্ত করেছি - আমি যে প্রকল্পটি তৈরির চেষ্টা করছি তা হ'ল:

https://github.com/domi007/silentSMS/

আমি বুঝতে পেরেছি কারণ আমার এক্সএমএস এবং এক্সএমএক্স মানগুলি খুব কম। আমি এগুলিতে বাড়িয়েছি:

/ অ্যাপ্লিকেশনস / অ্যান্ড্রয়েড স্টুডিও.এপ / বিন / ভিডিও / ভিভোপশন যাতে এটি এখন বলে:

-Xms256m
-Xmx1024m

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

উত্তর:


547

আমি মনে করি ডেক্সিং অপারেশনের গাদা সীমা বাড়ানোর আলাদা উপায় আছে। androidআপনার build.gradleফাইলটিতে এটি আপনার বন্ধে যুক্ত করুন:

dexOptions {
    javaMaxHeapSize "4g"
}

এবং দেখুন যে এটি সাহায্য করে কিনা।

( স্কট বার্তার এই উত্তর সৌজন্যে )


45
4gকিছুটা ওভারকিল, 2gঠিক আছে
হুগো গ্রেস

3
ফ্যান্টাস্টিক! এটি আমার ত্রুটিও স্থির করেছে। আমি দেখতে পাচ্ছি যে আমি এটি যত বেশি স্মৃতি দিচ্ছি তত দ্রুত গতিবেগ যায়। আমি 1 মিনিট থেকে 19 সেকেন্ডে গিয়েছিলাম।
সাইমন

2
আমি তবুও ত্রুটিটি পেয়েছি: java.lang.OutOfMemoryError: জিসি ওভারহেড সীমা অতিক্রম করেছে [org.gradle.api.intern.project.ant.AntLoggingAdapter] at java.util.BitSet.clone
IgorGanapolsky

7
আমি এটি যুক্ত করেছি, তবে আমি এখনও দেখতে পেলামOutOfMemoryError
চাদ বিংহাম

8
আমার জন্য কাজ হয়নি, গ্রেড.প্রপ্রেটিসগুলিতে উঠতে হবে:org.gradle.jvmargs=-XX:MaxPermSize=1024m -Xms1024m -Xmx4096m -XX:ReservedCodeCacheSize=1024m
এইচএমএইচ

93

আমার ক্ষেত্রে, গাদা আকার বাড়ানোর জন্য দেখতে এই রকম দেখাচ্ছে:

অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে 1.1.0

android {
    dexOptions {
        incremental true
        javaMaxHeapSize "2048M"
    }
}

উপরের কোডটি আপনার বিল্ড . gradle ফাইলে রাখুন ।


4
GC overhead limit exceededআমি মাল্টিডেক্সিং সক্ষম করার পরে এটি কাটিয়ে ওঠার জন্য কাজ করেছিল। ব্যতিক্রমটি ছিলat com.android.dx.command.dexer.Main.runMultiDex(Main.java:334)
কেউ সোমবার কোথাও

এটি একটি মন্তব্য হিসাবে চমত্কার হতে চলেছে না, তবে অ্যান্ড্রয়েড স্টুডিও ত্রুটিটি দেখিয়েছে `অবিচ্ছিন্ন শীর্ষ-স্তর ত্রুটি: java.lang.OutOfMemoryError: GC ওভারহেড সীমা অতিক্রম করেছে - ব্যতিক্রমের অবস্থানটি ছিল at com.android.dx.util.FixedSizeList.<init>(FixedSizeList.java:38)এবং স্ট্যাকের শীর্ষে ছিলcom.android.dx.command.dexer.Main.runMultiDex(Main.java:334) at com.android.dx.command.dexer.Main.run(Main.java:244) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)
কোথাও কেউ

1
তবে আমি আপনাকে javaMaxHeapSize এবং ইনক্রিমেন্টাল প্যারামিটার যুক্ত করার সাথে সাথে অ্যান্ড্রয়েড স্টুডিও মাল্টি-ডেক্সড অ্যাপ্লিকেশন তৈরি করতে সক্ষম হয়েছিল।
কেউ কেউ কোথাও

যদি 2 জিবি কিছুটা পর্যাপ্ত না হয়, তবে আমি 4gb ব্যবহার করব যা কমনওয়্যারের পরামর্শ দিয়েছিল।
কেউ কেউ কোথাও

1
ধন্যবাদ। দস্তাবেজগুলি কী বলে সে সম্পর্কে খেয়াল করুন incremental: এর অনেক সীমাবদ্ধতা রয়েছে এবং এটি কাজ করতে পারে না। সাবধানে ব্যবহার করুন।
ফেরান মেলিনঞ্চ

41

এই নতুন সমস্যাটি অ্যান্ড্রয়েডের সর্বশেষ সংস্করণ দ্বারা সৃষ্ট caused

আপনার প্রকল্পের মূল ফোল্ডারে যান, খুলুন gradle.propertiesএবং নিম্নলিখিত বিকল্পগুলি যুক্ত করুন:

org.gradle.daemon=true

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

org.gradle.parallel=true

org.gradle.configureondemand=true

তারপরে আপনার build.gradleফাইলটিতে এই পরিবর্তনগুলি যুক্ত করুন:

dexOptions {
        incremental = true
        preDexLibraries = false
        javaMaxHeapSize "4g" // 2g should be also OK
}

1
সতর্কতা: android.dexOptions.incrementalসম্পত্তি হ্রাস করা হয়েছে এবং বিল্ড প্রক্রিয়াতে এর কোনও প্রভাব নেই।
tir38

এটি আমার সমস্যা সমাধান করেছে। তবে i; ts java_pid1512.hprof নামে একটি ফাইল তৈরি করছে যা খুব বড়। আমি অনুমান করছি যে আপনার ডিফল ফাইলটি এটি তৈরি করছে? এটি কি প্রয়োজনীয় এবং আপনি কীভাবে ফাইলটিতে ডাম্পটি সরিয়ে ফেলতে পারবেন তা দেখিয়ে দিতে পারেন
j2emanue

1
@ j2emanue: এই ফাইলটি "HeapDumpOnOutOfMemoryError" বিকল্পের কারণে তৈরি করা হয়েছে: docs.oracle.com/cd/E15289_01/doc.40/e15062/…
মেহলিফিকেশন

1
আপডেট করার দরকার হতে পারে: incremental2018 এর শেষের দিকে মুছে ফেলা হয়
কুসোদায়েলো

3.4 আঃ সক্রিয় মধ্যে "org.gradle.jvmargs = -Xmx2048m -XX: MaxPermSize = 512m -XX + + HeapDumpOnOutOfMemoryError -Dfile.encoding = হল UTF-8" gradle.properties ফাইলে আমার জন্য সমস্যা সমাধান
JimmyFlash

4

আমি আমার তাত্ক্ষণিক সঞ্চালনটি অক্ষম করে দিয়েছি:

মেনু পছন্দসইবিল্ডতাত্ক্ষণিক চালান "তাত্ক্ষণিকভাবে চালিত হট স্ব্যাপ কোড সক্ষম করুন"

আমার ধারণা এটি তাত্ক্ষণিক রান যা বিল্ডটিকে ধীর করে তোলে এবং একটি বৃহত আকারের পিডএক্সএক্সএক্সএক্সএইচআরএফ ফাইল তৈরি করে যা অ্যান্ড্রয়েড স্টুডিও জিসি ওভারহেড সীমা অতিক্রম করে।

(আমার ডিভাইস এসডিকে 19 বছর বয়সী)


আপনি কীভাবে খুঁজে পেলেন যে এটি তাত্ক্ষণিকভাবে চালানো হয়েছিল যে এত বড় এইচপিআরফ ফাইল তৈরি করেছে? আমি লক্ষ্য করেছি যে আমাদের গিটল্যাব সার্ভারে সম্প্রতি একটি তৈরি করা হয়েছে, তবে আমাদের তাত্ক্ষণিকভাবে রান সক্ষম করা হয়নি।
অ্যাডামএমসি 331

4

অ্যান্ড্রয়েড স্টুডিও 3.5.3

ম্যাকারে মেমোরি সেটিংস (সিএমডি + শিফট + এ সন্ধান করুন বা সহায়তা ক্লিক করুন এবং পছন্দসমূহ / সেটিংসের আওতায় "মেমরি সেটিংস" টাইপ শুরু করুন) এবং আপনার সন্তুষ্টির জন্য আইডিই হিপ সাইজ এবং / অথবা ডিমন হিপ আকার বাড়ান এখানে চিত্র বর্ণনা লিখুন


1
ধন্যবাদ আপনি আমার দিন বাঁচিয়েছেন।
বীরেন্দ্র পাল সিং


0

আমি বাধ্য হয়ে সমস্ত জাভা.এক্সই টাস্ক ম্যানেজার থেকে বন্ধ করে দিয়েছিলাম, অ্যান্ড্রয়েড স্টুডিও পুনরায় চালু করেছি এবং এটি আমার পক্ষে কাজ করেছে

এখানে চিত্র বর্ণনা লিখুন


0

আমার পক্ষে এখানে উত্তর দেখে আমি কাজ করেছিলাম non আমি অনুমান করেছি যে সিপিইউ কাজ করা কম্পিউটারকে গরম করে তোলে। আমি প্রচুর পরিমাণে সিপিইউ (ক্রোমের মতো) গ্রাসকারী এবং আমার ল্যাপটপটি শীতল করার পরে প্রোগ্রামগুলি বন্ধ করার পরে সমস্যাটি অদৃশ্য হয়ে গেল।

রেফারেন্সের জন্য: আমার জাভা.এক্সএইসি প্রক্রিয়া দ্বারা (যা আসলে গ্রেড সম্পর্কিত প্রক্রিয়া ছিল) দ্বারা 96% -97% এবং মেমরির ব্যবহার 2,000,000K এর উপরে আমার সিপিইউ ছিল।


আপনার সমাধানটি এখানে উত্থাপিত স্পেসিফিক সমস্যাটির সাথে কীভাবে সম্পর্কিত?
কলবলিক

আমি উপরে উল্লিখিত একই ত্রুটি পেয়েছি: java.lang.OutOfMemoryError: জিসি ওভারহেড সীমাটি ছাড়িয়ে গেছে আমি যে সমাধানটি প্রস্তাব করেছি তা আমার জন্য এই ত্রুটিটি সমাধান করেছে
#Noy

0

আমি ব্যবহার করছি Android Studio 3.4এবং আমার পক্ষে কাজ করা একমাত্র জিনিসটি ছিল আমার build.gradleফাইল থেকে নিম্নলিখিত লাইনগুলি সরিয়ে ফেলা :

minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

কারণ Android Studio 3.4ব্যবহার R8করছে full modeএবং এটি সরাসরি সামঞ্জস্যপূর্ণ নয়Proguard


2
আমি মনে করি এটির কোনও সমাধান হয় না যখন আপনি একটি অস্পষ্ট বিল্ড প্রকাশ করতে হবে। আমি অ্যান্ড্রয়েড স্টুডিও ৩.৪ এর সাথে গ্রেড -৫.২.১ ব্যবহার করেছি এবং গ্রেড -৫.১.১ একই ধরণের সমস্যা হচ্ছিল এমন সময়ে এটি প্রো-গার্ড কনফিগারেশন সহ দুর্দান্ত কাজ করছে । minifyEnabled true
বিকাশ পাটিদার

এটি আমরা যা চাই তার ঠিক বিপরীত। -1
জুন

যেমনটি আমি বলেছিলাম, এটি আমার পক্ষে কাজ করেছে এবং ত্রুটিটি চলে গেছে এবং শেষ পর্যন্ত আমি এপিপি তৈরি করতে সক্ষম হয়েছি। অন্যগুলির উত্তরগুলির মধ্যে আমার প্রকল্পে কাজ হয়নি।
পাইবেইরোস

প্রজেক্ট / অ্যান্ড্রয়েডে চালিত ক্যামমন্ডে 5.2.1 গ্রেড আপডেট করুন ./gradlew wrapper --gradle-version=5.2.1
অশোক দেবতওয়াল

0

আমার ক্ষেত্রে, আমি আমার সম্পাদনা করুন gradle.properties:

দ্রষ্টব্য: আপনি যদি সক্ষম হন minifyEnabled true:

এই লাইনটি সরান:

android.enableR8=true

এবং আপনার এই লাইনগুলি যুক্ত করুন build.gradle, androidব্লক করুন:

  dexOptions {
        incremental = true
        preDexLibraries = false
        javaMaxHeapSize "4g" // 2g should be also OK
    }

আশা করি এটি কারও সাহায্য করবে :)


0

4 জি সামান্য ওভারকিল, আপনি যদি বিল্ডগ্র্যাডেল পরিবর্তন করতে না চান তবে আপনি ফাইল -> অবৈধ ক্যাশে / পুনঃসূচনা করতে পারেন।

আমার জন্য এটা ঠিক কাজ করে ...


0

এক পর্যায়ে একটি সদৃশ অনুলিপি apply plugin: 'com.android.application'আমার বিল্ড গ্রেডে যুক্ত হয়েছিল। সদৃশ অনুলিপি অপসারণ এবং আমার সমস্ত প্রয়োগ প্লাগইনগুলি শীর্ষে ছিল তা নিশ্চিত করা আমার জন্য সমস্যাটি স্থির করে।

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