ইতিমধ্যে যেমনটি বলা হয়েছে, আপনার প্রকল্প এবং লিবিসে আপনার অনেকগুলি পদ্ধতি রয়েছে (65 কিলোকের বেশি)।
সমস্যাটি প্রতিরোধ করুন: প্লে পরিষেবাদি 6.5+ এবং সমর্থন-ভি 4 24.2+ এর সাথে পদ্ধতির সংখ্যা হ্রাস করুন
যেহেতু প্রায়শই গুগল প্লে পরিষেবাগুলি তার 20k + পদ্ধতিতে "নষ্ট" পদ্ধতিগুলির অন্যতম প্রধান সন্দেহভাজন । গুগল প্লে পরিষেবাগুলির সংস্করণ .5.৫ বা তার পরে, আপনার পক্ষে বেশ কয়েকটি ছোট ক্লায়েন্ট লাইব্রেরি ব্যবহার করে আপনার অ্যাপ্লিকেশনটিতে গুগল প্লে পরিষেবা অন্তর্ভুক্ত করা সম্ভব । উদাহরণস্বরূপ, আপনার যদি কেবলমাত্র জিসিএম এবং মানচিত্রের প্রয়োজন হয় তবে আপনি কেবল এই নির্ভরশীলতাগুলি ব্যবহার করতে বেছে নিতে পারেন:
dependencies {
compile 'com.google.android.gms:play-services-base:6.5.+'
compile 'com.google.android.gms:play-services-maps:6.5.+'
}
সাব লাইব্রেরিগুলির সম্পূর্ণ তালিকা এবং এর দায়িত্বগুলি সরকারী গুগল ডকটিতে পাওয়া যাবে ।
আপডেট : সাপোর্ট লাইব্রেরি v4 v24.2.0 যেহেতু এটি নিম্নলিখিত মডিউলগুলিতে বিভক্ত হয়েছে:
support-compat
, support-core-utils
, support-core-ui
, support-media-compat
এবংsupport-fragment
dependencies {
compile 'com.android.support:support-fragment:24.2.+'
}
তবে খেয়াল রাখবেন, আপনি যদি ব্যবহার করেন তবে support-fragment
এটির অন্যান্য মডিউলগুলির উপর নির্ভরতা থাকবে (যেমন আপনি যদি ব্যবহার android.support.v4.app.Fragment
করেন তবে কোনও লাভ নেই)
সমর্থন-ভি 4 লাইবের জন্য সরকারী প্রকাশের নোটগুলি এখানে দেখুন
মাল্টিডেক্সিং সক্ষম করুন
ললিপপ যেহেতু (ওরফে বিল্ড সরঞ্জাম 21+) এটি পরিচালনা করা খুব সহজ। আপনার অ্যাপ্লিকেশনের জন্য একাধিক ডেক্স ফাইল তৈরি করতে ডেক্স ফাইল সমস্যার জন্য 65k পদ্ধতিগুলি ব্যবহার করার পদ্ধতিটি রয়েছে। আপনার গ্রেড বিল্ড ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন ( এটি 65k এরও বেশি পদ্ধতির অ্যাপ্লিকেশনগুলিতে অফিশিয়াল গুগল ডক থেকে নেওয়া হয়েছে ):
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
দ্বিতীয় পদক্ষেপটি হয় আপনার অ্যাপ্লিকেশন ক্লাসটি প্রস্তুত করা বা আপনি যদি অ্যাপ্লিকেশনটি প্রসারিত না MultiDexApplication
করেন তবে আপনার অ্যান্ড্রয়েড ম্যানিফেস্টে এটি ব্যবহার করুন :
হয় এটি আপনার অ্যাপ্লিকেশন.জভাতে যুক্ত করুন
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
বা প্রদত্ত অ্যাপ্লিকেশনটি mutlidex lib থেকে ব্যবহার করুন
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.myapplication">
<application
...
android:name="android.support.multidex.MultiDexApplication">
...
</application>
</manifest>
মাল্টিডেক্সের সাথে আউটঅফমেমরি প্রতিরোধ করুন
পরবর্তী টিপ হিসাবে, আপনি যদি OutOfMemory
বিল্ড পর্বের সময় ব্যতিক্রম হিসাবে চালিত হন তবে আপনি গাদাটি আরও বড় করতে পারেন
android {
...
dexOptions {
javaMaxHeapSize "4g"
}
}
যা 4 গিগাবাইটে গাদা সেট করবে।
ডেক্স হ্যাপ মেমরি ইস্যুতে আরও বিশদের জন্য এই প্রশ্নটি দেখুন।
সমস্যার উত্স বিশ্লেষণ করুন
পদ্ধতির উত্স বিশ্লেষণ করতে গ্রেড প্লাগইন https://github.com/KeepSafe/dexcount-gradle-plugin উদাহরণস্বরূপ গ্রেড দ্বারা সরবরাহিত নির্ভরতা গাছের সাথে মিশ্রণে সহায়তা করতে পারে
.\gradlew app:dependencies
অ্যান্ড্রয়েডে পদ্ধতিতে গণনা সম্পর্কিত আরও তথ্যের জন্য এই উত্তর এবং প্রশ্নটি দেখুন