ডেক্সএক্সেপশন: একটি নতুন জাম্বো নির্দেশে নতুন সূচক 65536 একীভূত করতে পারে না


84

কিছু অজানা কারণে হঠাৎ আমার অ্যাপটি অ্যান্ড্রয়েড স্টুডিও থেকে তৈরি করবে না।

আমি পেতে থাকি

> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/martynas/android-sdk/build-tools/19.1.0/dx --dex --num-threads=4 --output
...
...
...
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Cannot merge new index 65536 into a non-jumbo instruction!

একই অ্যাপ্লিকেশন কমান্ড লাইন থেকে সফলভাবে নির্মিত হয়। আমি পদ্ধতি উল্লেখগুলি গণনা পরীক্ষা করে দেখেছি এবং এটি ভয়ঙ্কর k৪ কের নীচে।

আমি এখন 0.8.11 এএস ব্যবহার করছি।

উত্তর:


57

এই প্রকল্পটি আপনার প্রকল্পে যুক্ত করার চেষ্টা করুন rop

dex.for.jumbo = সত্য

যা ডেক্স ফাইলগুলিতে স্ট্রিংয়ের সীমা সীমাবদ্ধ করে। এবং আপনার প্রকল্প সম্ভবত সংকলন করা হবে।

দ্রষ্টব্য: জাম্বো সেট সহ, কেবলমাত্র একক ডেক্সের পদ্ধতির জন্য এটি 64K এর আর একটি সীমা। আপনি যদি ভবিষ্যতে এই সীমাটি পান তবে আপনার কিছু নির্ভরতা অপসারণ করতে হবে।

আপডেট - গুগল প্লে পরিষেবাদি 6.5 (12-08-14)

সংস্করণ .5.৫ সহ গুগল অবশেষে গুগল প্লে পরিষেবাগুলি আনবান্ডেল করেছে। সুতরাং এখন থেকে আপনার নির্বাহযোগ্য মধ্যে বেছে বেছে API গুলি সংকলন করা সম্ভব হবে।

উদাহরণ:

compile 'com.google.android.gms:play-services-maps:6.5.+'
compile 'com.google.android.gms:play-services-ads:6.5.+'

অন্যান্য সমস্ত স্বতন্ত্র গুগল প্লে পরিষেবাদি এপিআইয়ের জন্য d.android.com এ এই পৃষ্ঠাটি দেখুন।

আপডেট (21-04-2015): https://developer.android.com/tools/building/m લ્ટdex.html


11
যোগ করা হচ্ছে project.properties: তাই আমি আমার gradle বিল্ড স্ক্রিপ্ট আপডেট হিসাবে এখানে বর্ণিত কাজ করে নি stackoverflow.com/questions/17320088/...
Martynas Jurkus

4
আমি উভয় সমাধানই করেছি: ডেক্স.ফোর্স.জম্বো সম্পত্তি এবং ডেক্সঅপশন যোগ করার পরেও আমি এখনও একই ত্রুটি পেয়েছি। আরেকটি বিকল্প?
হুয়ান সরভিয়া


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

4
পুরো গুগল প্লে পরিষেবাদিগুলি সংকলনের পরিবর্তে, আমি 'বেস' বান্ডেলটি দরকারী হিসাবে, 65 কে compile 'com.google.android.gms:play-services-base:7.3.0'
ডেক্স

245

জাম্বোমোড সম্পত্তি বিল্ড.gradle এ সেট করুন:

android {
    ...
    dexOptions {
        jumboMode true
    }

}

আমি এটি দরকারীও পেয়েছি: প্যাকেজ দ্বারা ডেক্স পদ্ধতি গণনা দেখানো হচ্ছে


12
ধন্যবাদ! এটি আমার পক্ষেও কাজ করে। তবে এই "জাম্বোমোড" এর অর্থ কী?
yital9

4
@ ইয়িটাল9 আপনি এখানে জাম্বো মোড সম্পর্কে আরও জানতে পারেন: stackoverflow.com/a/30517283/4034572
আলবার্ট ভিলা ক্যালভো

দয়া করে এই ব্লকের কারণ ব্যাখ্যা করুন
ইসি ড্রয়েড

অগ্রগতির কারণে রিলিজ বিল্ডটি ঠিকঠাক হয়ে যাওয়ার সাথে সাথে আমি এই ডিবাগ বিল্ড টাইপের ভিতরে একাই যুক্ত করেছি। এই পরিবর্তনের পরে ডিবাগ বিল্ডটি ঠিকঠাক হয়েছিল। এই ভাল?
গারনেট

4
এটি আমার পক্ষে কাজ করে। মনে রাখবেন যে বিল্ডড্র্যাডেল পরিবর্তন করতে হবে এটি মডিউল হওয়া উচিত যা com.android.dex.DexException নিক্ষেপ করে।
ফ্রান্সিস বেকন

54

এটি আমার পক্ষে কাজ করে। আমি পাচ্ছিলামcom.android.dex.DexIndexOverflowException: Cannot merge new index 66636 into a non-jumbo instruction!

android {
    ...
    dexOptions {
        jumboMode true
    }
}

যদি এটি কাজ না করে থাকে তবে আপনি ডেক্সে পদ্ধতি রেফারেন্স সীমাতে পৌঁছেছেন যা একটি ভিন্ন সমস্যা। আপনাকে মাল্টিডেক্স বা প্রোগুয়ার্ড ব্যবহার করতে হবে।


এটা আমার জন্য কাজ। ধন্যবাদ !!! তবে 'জাম্বোমোড' কী? আপনি আমাকে ব্যাখ্যা করতে পারেন? @ সৈয়ুজ
ডিজি

13

মার্জ হওয়া ডেক্স ফাইলগুলিতে 36৫৫3636 টিরও বেশি স্ট্রিং থাকলে এটি মার্জারে একটি বাগ is নতুন সূচকটি কোনও কনস্ট্রিং-স্ট্রিং নির্দেশের সাথে ফিট করতে পারে না এবং ডেক্স মার্জারটি বিভিন্ন মাপের নির্দেশাবলী পরিবর্তন করার পক্ষে সমর্থন করে না, তাই এটি কোনও কনস্ট্রিং স্ট্রিং / জাম্বো নির্দেশে প্রশস্ত করা যায় না his এটি ঠিক করা হয়েছিল একটি নতুন বিকল্প যুক্ত করে jb-mr1: --ফোর্স-জাম্বো.এই বাগটি প্রকল্প.প্রেটিস যুক্ত "dex.force.jumbo=true"করে স্থির করা যেতে পারে ।


4
@ প্রদীপ শর্মা আপনার জাম্বোমড সক্রিয় করার পরে আপনার প্রকল্পটি পরিষ্কার করতে হবে
লিলো

-1

অ্যান্ড্রয়েড স্টুডিও সংকলক সেটিংসে সর্বশেষতম অ্যান্ড্রয়েড স্টুডিও এবং পতাকা "ফোর্স জাম্বো" চেক করা থাকলে, এই সমস্যাটি অদৃশ্য হয়ে যায়।


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