মাল্টিডেক্স সম্পর্কে অনেকগুলি পোস্ট রয়েছে। আমি অভিজ্ঞতা আছে, কখনও কখনও, ত্রুটি সহ মীমাংসিত multiDexEnabled true
মধ্যে defaultConfig
আমার build.gradle বিভাগে।
তবে, এই বৈশিষ্ট্যটি ঠিক কী? এটি ব্যবহারের জন্য পরিস্থিতিগুলি কী কী?
মাল্টিডেক্স সম্পর্কে অনেকগুলি পোস্ট রয়েছে। আমি অভিজ্ঞতা আছে, কখনও কখনও, ত্রুটি সহ মীমাংসিত multiDexEnabled true
মধ্যে defaultConfig
আমার build.gradle বিভাগে।
তবে, এই বৈশিষ্ট্যটি ঠিক কী? এটি ব্যবহারের জন্য পরিস্থিতিগুলি কী কী?
উত্তর:
ডকুমেন্টেশন উদ্ধৃত :
অ্যান্ড্রয়েড অ্যাপ্লিকেশন (APK) ফাইলগুলিতে ডালভিক এক্সিকিউটেবল (ডিএক্স) ফাইল আকারে এক্সিকিউটেবল বাইটকোড ফাইল থাকে যা আপনার অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত সংকলিত কোড ধারণ করে। ডালভিক এক্সিকিউটেবল স্পেসিফিকেশন আপনার নিজের কোডে অ্যান্ড্রয়েড ফ্রেমওয়ার্ক পদ্ধতি, গ্রন্থাগার পদ্ধতি এবং পদ্ধতি সহ একক ডিএক্স ফাইলের মধ্যে উল্লেখযোগ্য মোট পদ্ধতির সীমাবদ্ধতা 65,536 এ সীমাবদ্ধ করে। এই সীমাটি পেরিয়ে যাওয়ার জন্য আপনাকে মাল্টিডেক্স কনফিগারেশন হিসাবে পরিচিত একাধিক ডেক্স ফাইল তৈরি করতে আপনার অ্যাপ বিল্ড প্রক্রিয়াটি কনফিগার করতে হবে।
সুতরাং, বৈশিষ্ট্যটি হ'ল: এটি আপনার জটিল অ্যাপটিকে সংকলন করতে দেয় allows 64K ডেক্স পদ্ধতি রেফারেন্স সীমাটি আঘাত করার কারণে যখন আপনার অ্যাপ্লিকেশনটি সংকলন করতে ব্যর্থ হয় তখন এটি ব্যবহারের পরিস্থিতিগুলি। এটি একটি বিল্ড ত্রুটি হিসাবে উপস্থিত হয়, যেমন:
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
একটি একক। ডেক্স ফাইলে 65,536 পদ্ধতি (রেফারেন্স) থাকতে পারে তাই যদি রেফারেন্সের সংখ্যা 65,536 ছাড়িয়ে যায়, আপনি মাল্টিডেক্স সহ যান।
একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্রোগ্রাম একটি .dex ফাইলে সংকলিত হয় যা একক .apk ফাইলে জিপ করে।
ডিভিএম (ডালভিক ভার্চুয়াল মেশিন) বাইকোডগুলি কার্যকর করতে .dex ফাইল / ফাইল ব্যবহার করে।
কী কারণে রেফারেন্সের সংখ্যা 65,536 সীমা ছাড়িয়ে যায়?
আপনার দ্বারা রচিত পদ্ধতিগুলি + অ্যান্ড্রয়েড ফ্রেমওয়ার্ক পদ্ধতিগুলি + তৃতীয় পক্ষের লাইব্রেরি (যেমন ভল্লি, রেট্রোফিট, ফেসবুক এসডিকে ইত্যাদি) পদ্ধতিগুলি।
আমি "কোথাও"
অ্যাপ কমপ্যাট পড়েছি 24.2.1 এ 16.5k পদ্ধতি রয়েছে
গুগল প্লে পরিষেবাদি জিসিএম 9.6.1-এ রয়েছে 16.7k পদ্ধতি রয়েছে
তাই আপনি যদি অ্যাপ্লিকেশনের কমপ্যাট 24.2.1 আছে এমন একটি সাধারণ হ্যালো ওয়ার্ল্ড অ্যাপ্লিকেশন তৈরি করে থাকেন তবে আপনি ইতিমধ্যে 1/4 একক ডেক্স পদ্ধতি সীমা অতিক্রম করার উপায়
অ্যান্ড্রয়েডে মাল্টিডেক্স কী?
ডেক্স বলতে ডালভিক এক্সিকিউটেবল, যা গুগলের ভার্চুয়াল মেশিন প্রসেসর (ডালভিক) অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি পরিচালনা করতে ব্যবহার করে। অ্যান্ড্রয়েড ছোট এবং সাধারণ অ্যাপ্লিকেশনগুলি মাথায় রেখে তৈরি করা হয়েছিল এবং একটি একক ডালভিক এক্সিকিউটেবলের সীমাবদ্ধতাগুলি 65,536 পদ্ধতিতে কোড রেফারেন্সের ছাদ পিন করেছে। এই সমস্যাটি এবং ডালভিক মেশিনটি কোড প্রয়োগের যেভাবে পরিচালনা করে, সেই কারণে বানর প্যাচ বা মাল্টিডেক্স ইন্টিগ্রেশন পর্যন্ত কিছু সংকলন এবং প্রার্থনা সংক্রান্ত সমস্যা ছিল । অ্যান্ড্রয়েড স্টুডিওতে মাল্টিডেক্স ইন্টিগ্রেশন অ্যান্ড্রয়েড বিকাশকারীদের 65,536 এরও বেশি পদ্ধতির সাথে একটি কোড-বেস সংকলন এবং সম্পাদন করার ক্ষমতা দেয়!
অ্যান্ড্রয়েড বিকাশকারী অফিসিয়াল সাইট accroding।
If your minSdkVersion is set to 21 or higher, multidex is enabled by default and you do not need the multidex support library.