পূর্বশর্ত
- Android SDK ম্যানেজার ব্যবহার করে Android SDK এর সর্বশেষ সংস্করণটি ইনস্টল করুন।
- অ্যান্ড্রয়েড এসডিকে ম্যানেজারের মাধ্যমে অ্যাপকম্প্যাট এবং মিডিয়ারাউটারের অ্যান্ড্রয়েডএক্স লাইব্রেরির সর্বশেষ সংস্করণটি ইনস্টল করুন।
- অ্যান্ড্রয়েড এসডিকে ম্যানেজারের মাধ্যমে গুগল প্লে পরিষেবাগুলিতে সর্বশেষ কাস্ট এসডিকে ইনস্টল করুন।
অ্যান্ড্রয়েডের জন্য গুগল কাস্ট এসডিকে গুগল প্লে সার্ভিসেস এসডিকে-র অংশ এবং এটি আলাদাভাবে ডাউনলোড করার প্রয়োজন নেই।
দ্রষ্টব্য : গুগল প্লে পরিষেবাগুলি আপনাকে বিজ্ঞাপন তৈরি, বিশ্লেষণ সংগ্রহ, ব্যবহারকারীদের প্রমাণীকরণ, মানচিত্র সংহতকরণ এবং আরও অনেক কিছুর জন্য বিভিন্ন ধরণের API- তে অ্যাক্সেস দেয়। আরও তথ্যের জন্য, গুগল প্লে পরিষেবাগুলির ওভারভিউ দেখুন। ব্যবহারকারীর ডিভাইসে সঠিক গুগল প্লে পরিষেবা APK ইনস্টল করা আছে কিনা তা নিশ্চিত করা আপনার জন্য গুরুত্বপূর্ণ কারণ আপডেটগুলি তাৎক্ষণিকভাবে সমস্ত ব্যবহারকারীর কাছে নাও পৌঁছাতে পারে।
আপনার প্রকল্পে Google Play পরিষেবা যোগ করুন
নিচে আপনার ডেভেলপমেন্ট পরিবেশ নির্বাচন করুন এবং প্রদত্ত পদক্ষেপগুলি অনুসরণ করে আপনার প্রকল্পে Google Play পরিষেবা যোগ করুন।
অ্যান্ড্রয়েড স্টুডিও
আপনার অ্যাপে Google Play পরিষেবা API গুলি উপলব্ধ করতে:
- আপনার অ্যাপ্লিকেশন মডিউল ডিরেক্টরির ভিতরে
build.gradleফাইলটি খুলুন।দ্রষ্টব্য: অ্যান্ড্রয়েড স্টুডিও প্রকল্পগুলিতে প্রতিটি মডিউলের জন্য একটি শীর্ষ-স্তরের
build.gradleফাইল এবং একটিbuild.gradleফাইল থাকে। আপনার অ্যাপ্লিকেশন মডিউলের জন্য ফাইলটি সম্পাদনা করতে ভুলবেন না। Gradle সম্পর্কে আরও তথ্যের জন্য Building Your Project with Gradle দেখুন। - তালিকাভুক্ত
repositoriesgoogle()অন্তর্ভুক্ত আছে কিনা তা যাচাই করুন।repositories {google() } play-servicesএর সর্বশেষ সংস্করণের জন্যdependenciesএর অধীনে একটি নতুন বিল্ড নিয়ম যোগ করুন। উদাহরণস্বরূপ:apply plugin: 'com.android.application' ... dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.mediarouter:mediarouter:1.2.5' implementation 'com.google.android.gms:play-services-cast-framework:22.2.0' }
প্রতিবার গুগল প্লে পরিষেবা আপডেট করার সময় এই সংস্করণ নম্বরটি আপডেট করুন।
দ্রষ্টব্য: যদি আপনার অ্যাপে পদ্ধতির রেফারেন্সের সংখ্যা 65K সীমা অতিক্রম করে, তাহলে আপনার অ্যাপটি কম্পাইল করতে ব্যর্থ হতে পারে। আপনার অ্যাপ কম্পাইল করার সময় আপনি এই সমস্যাটি কমাতে সক্ষম হতে পারেন শুধুমাত্র আপনার অ্যাপের ব্যবহৃত নির্দিষ্ট Google Play পরিষেবা API গুলি নির্দিষ্ট করে, সমস্তটির পরিবর্তে। এটি কীভাবে করবেন সে সম্পর্কে তথ্যের জন্য, আপনার এক্সিকিউটেবলে Selectively কম্পাইলিং API গুলি দেখুন।
- পরিবর্তনগুলি সংরক্ষণ করুন এবং টুলবারে "সিঙ্ক প্রজেক্ট উইথ গ্রেডল ফাইলস" এ ক্লিক করুন।
অন্যান্য IDE
আপনার অ্যাপে Google Play পরিষেবা API গুলি উপলব্ধ করতে:
-
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/লিঙ্ক থেকে লাইব্রেরি প্রজেক্টটি আপনার অ্যান্ড্রয়েড অ্যাপ প্রজেক্টগুলি যেখানে রক্ষণাবেক্ষণ করেন সেখানে কপি করুন। - আপনার অ্যাপ প্রজেক্টে, Google Play পরিষেবা লাইব্রেরি প্রজেক্টটি উল্লেখ করুন। এটি কীভাবে করবেন সে সম্পর্কে আরও তথ্যের জন্য কমান্ড লাইনে একটি লাইব্রেরি প্রজেক্ট রেফারেন্সিং দেখুন।
দ্রষ্টব্য: আপনার ডেভেলপমেন্ট ওয়ার্কস্পেসে কপি করা লাইব্রেরির একটি কপি উল্লেখ করা উচিত—আপনার Android SDK ডিরেক্টরি থেকে সরাসরি লাইব্রেরি উল্লেখ করা উচিত নয়।
- আপনার অ্যাপ প্রজেক্টের জন্য নির্ভরতা হিসেবে Google Play পরিষেবা লাইব্রেরি যোগ করার পর, আপনার অ্যাপের ম্যানিফেস্ট ফাইলটি খুলুন এবং
<application>এলিমেন্টের চাইল্ড হিসেবে নিম্নলিখিত ট্যাগটি যোগ করুন:<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
একবার আপনি আপনার প্রকল্পটি লাইব্রেরি প্রকল্পের রেফারেন্সের জন্য সেট আপ করলে, আপনি Google Play পরিষেবা API গুলি দিয়ে বৈশিষ্ট্যগুলি বিকাশ শুরু করতে পারেন।
একটি প্রোগার্ড ব্যতিক্রম তৈরি করুন
ProGuard যাতে প্রয়োজনীয় ক্লাসগুলি সরিয়ে না নেয়, তার জন্য নিম্নলিখিত লাইনগুলি যোগ করুন ফাইল:
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } -keepnames class * implements android.os.Parcelable -keepclassmembers class * implements android.os.Parcelable { public static final *** CREATOR; } -keep @interface android.support.annotation.Keep -keep @android.support.annotation.Keep class * -keepclasseswithmembers class * { @android.support.annotation.Keep <fields>; } -keepclasseswithmembers class * { @android.support.annotation.Keep <methods>; } -keep @interface com.google.android.gms.common.annotation.KeepName -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keep @interface com.google.android.gms.common.util.DynamiteApi -keep public @com.google.android.gms.common.util.DynamiteApi class * { public <fields>; public <methods>; } -dontwarn android.security.NetworkSecurityPolicy