ज़रूरी शर्तें
- Android SDK Manager का इस्तेमाल करके, Android SDK का नया वर्शन इंस्टॉल करें.
- Android SDK मैनेजर की मदद से, appcompat और mediarouter AndroidX लाइब्रेरी का नया वर्शन इंस्टॉल करें.
- Android SDK मैनेजर की मदद से, Google Play services में Cast SDK का नया वर्शन इंस्टॉल करें.
Android के लिए Google Cast SDK, Google Play services SDK का हिस्सा है. इसे अलग से डाउनलोड करने की ज़रूरत नहीं है.
ध्यान दें: Google Play services की मदद से, आपको कई तरह के एपीआई का ऐक्सेस मिलता है. इनका इस्तेमाल विज्ञापन बनाने, आंकड़ों को इकट्ठा करने, उपयोगकर्ताओं की पुष्टि करने, मैप इंटिग्रेट करने, और अन्य कामों के लिए किया जा सकता है. ज़्यादा जानकारी के लिए, Google Play services की खास जानकारी देखें. यह ज़रूरी है कि आप यह पक्का करें कि उपयोगकर्ता के डिवाइस पर Google Play services का सही APK इंस्टॉल हो. ऐसा इसलिए, क्योंकि हो सकता है कि अपडेट सभी उपयोगकर्ताओं तक तुरंत न पहुंचें.
अपने प्रोजेक्ट में Google Play services जोड़ना
नीचे दिए गए विकल्पों में से अपना डेवलपमेंट एनवायरमेंट चुनें. इसके बाद, दिए गए निर्देशों का पालन करके, अपने प्रोजेक्ट में Google Play services जोड़ें.
Android Studio
Google Play services के एपीआई को अपने ऐप्लिकेशन के लिए उपलब्ध कराने के लिए:
- अपने ऐप्लिकेशन मॉड्यूल डायरेक्ट्री में मौजूद
build.gradleफ़ाइल खोलें.ध्यान दें: Android Studio प्रोजेक्ट में, टॉप-लेवल की एक
build.gradleफ़ाइल और हर मॉड्यूल के लिए एकbuild.gradleफ़ाइल होती है. अपने ऐप्लिकेशन मॉड्यूल के लिए फ़ाइल में बदलाव करना न भूलें. Gradle के बारे में ज़्यादा जानने के लिए, Gradle की मदद से प्रोजेक्ट बनाना लेख पढ़ें. - पुष्टि करें कि
google(), सूची में दिए गएrepositoriesमें शामिल है.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' }
पक्का करें कि Google Play services के हर अपडेट के बाद, इस वर्शन नंबर को अपडेट किया जाए.
ध्यान दें: अगर आपके ऐप्लिकेशन में मेथड रेफ़रंस की संख्या, 65 हज़ार की सीमा से ज़्यादा है, तो हो सकता है कि आपका ऐप्लिकेशन कंपाइल न हो पाए. अपने ऐप्लिकेशन को कंपाइल करते समय, इस समस्या को कम किया जा सकता है. इसके लिए, आपको सिर्फ़ उन Google Play services API के बारे में बताना होगा जिनका इस्तेमाल आपका ऐप्लिकेशन करता है. इसके बजाय, सभी API के बारे में न बताएं. इसे करने के तरीके के बारे में जानने के लिए, अपने एक्ज़ीक्यूटेबल में एपीआई को चुनिंदा तौर पर कंपाइल करना लेख पढ़ें.
- बदलावों को सेव करें. इसके बाद, टूलबार में प्रोजेक्ट को Gradle फ़ाइलों के साथ सिंक करें पर क्लिक करें.
अन्य आईडीई
Google Play services के एपीआई को अपने ऐप्लिकेशन के लिए उपलब्ध कराने के लिए:
- लाइब्रेरी प्रोजेक्ट को
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/से उस जगह पर कॉपी करें जहां Android ऐप्लिकेशन प्रोजेक्ट मैनेज किए जाते हैं. - अपने ऐप्लिकेशन प्रोजेक्ट में, Google Play services लाइब्रेरी प्रोजेक्ट का रेफ़रंस दें. ऐसा करने के तरीके के बारे में ज़्यादा जानने के लिए,
कमांड लाइन पर लाइब्रेरी प्रोजेक्ट को रेफ़रंस करना देखें.
ध्यान दें: आपको लाइब्रेरी की उस कॉपी का रेफ़रंस देना चाहिए जिसे आपने अपने डेवलपमेंट वर्कस्पेस में कॉपी किया है. आपको लाइब्रेरी को सीधे तौर पर Android SDK डायरेक्ट्री से रेफ़रंस नहीं करना चाहिए.
- अपने ऐप्लिकेशन प्रोजेक्ट के लिए, Google Play services लाइब्रेरी को डिपेंडेंसी के तौर पर जोड़ने के बाद, अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल खोलें. इसके बाद, यहां दिए गए टैग को
<application>एलिमेंट के चाइल्ड के तौर पर जोड़ें:<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
लाइब्रेरी प्रोजेक्ट को रेफ़रंस देने के लिए प्रोजेक्ट सेट अप करने के बाद, Google Play सेवाओं के एपीआई की मदद से, सुविधाएं डेवलप की जा सकती हैं.
Proguard का अपवाद बनाना
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