Android Studio प्रोजेक्ट सेट अप करना

इस पेज पर, Android Studio प्रोजेक्ट को कॉन्फ़िगर करने का तरीका बताया गया है, ताकि Google Maps के टेंप्लेट का इस्तेमाल किए बिना, Android के लिए Maps SDK टूल का इस्तेमाल किया जा सके. इस टेंप्लेट के बारे में क्विकस्टार्टमें पूरी जानकारी दी गई है.

Google Maps का टेंप्लेट, नए Android Studio प्रोजेक्ट में मैप को अपने-आप कॉन्फ़िगर करता है और जोड़ता है. हालांकि, किसी ऐसे Android प्रोजेक्ट में भी मैप जोड़ा जा सकता है जो Android Studio के किसी दूसरे टेंप्लेट का इस्तेमाल करता है. इसके लिए, आपको अपने प्रोजेक्ट को मैन्युअल तरीके से कॉन्फ़िगर करना होगा. इसके बाद, मैप जोड़ना होगा.

पहला चरण: Android Studio सेट अप करना

इस दस्तावेज़ में, Android Studio Hedgehog और Android Gradle प्लगिन के वर्शन 8.2 का इस्तेमाल करके, डेवलपमेंट एनवायरमेंट सेट अप करने का तरीका बताया गया है.

.

दूसरा चरण. एसडीके सेट अप करना

Android के लिए Maps SDK टूल की लाइब्रेरी, Google की मेवन रिपॉज़िटरी पर उपलब्ध है. अपने ऐप्लिकेशन में एसडीके जोड़ने के लिए, यह तरीका अपनाएं:

  1. सबसे ऊपर वाले लेवल की settings.gradle.kts फ़ाइल में, Gradle प्लगिन पोर्टल, Google की Maven रिपॉज़िटरी, और Maven सेंट्रल रिपॉज़िटरी को pluginManagement ब्लॉक में शामिल करें. स्क्रिप्ट में, pluginManagement ब्लॉक किसी भी अन्य स्टेटमेंट से पहले दिखना चाहिए.
    pluginManagement {
        repositories {
            google()
            mavenCentral()
            gradlePluginPortal()
        }
    } 
  2. सबसे ऊपर वाले लेवल की settings.gradle.kts फ़ाइल में, Google की Maven रिपॉज़िटरी और Maven सेंट्रल रिपॉज़िटरी को dependencyResolutionManagement ब्लॉक में शामिल करें:
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
        repositories {
            google()
            mavenCentral()
        }
    } 
  3. मॉड्यूल-लेवल की build.gradle.kts या build.gradle फ़ाइल में, Android के लिए Maps SDK टूल के लिए Google Play services की डिपेंडेंसी जोड़ें.

    Kotlin

    dependencies {
    
        // Maps SDK for Android
        implementation(libs.play.services.maps)
    }

    Groovy

    dependencies {
    
        // Maps SDK for Android
        implementation "com.google.android.gms:play-services-maps:20.1.0"
    }
  4. मॉड्यूल-लेवल की build.gradle.kts या build.gradle फ़ाइल में, compileSdk और minSdk को ये वैल्यू सेट करें:

    Kotlin

    android {
        compileSdk = 34
    
        defaultConfig {
            minSdk = 23
            // ...
        }
    }

    Groovy

    android {
        compileSdk 34
    
        defaultConfig {
            minSdk 23
            // ...
        }
    }
  5. मॉड्यूल-लेवल की build.gradle.kts या build.gradle फ़ाइल के buildFeatures सेक्शन में, BuildConfig क्लास जोड़ें. इसका इस्तेमाल, इस प्रोसेस में बाद में तय की गई मेटाडेटा वैल्यू को ऐक्सेस करने के लिए किया जा सकता है:

    Kotlin

    android {
      // ...
      buildFeatures {
        buildConfig = true
        // ...
      }
    }

    Groovy

    android {
      // ...
      buildFeatures {
        buildConfig true
        // ...
      }
    }
  6. अपनी libs.versions.toml फ़ाइल में, यह कोड जोड़ें:
    [versions]
    play-services-maps = "20.1.0"
    
    [libraries]
    play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "play-services-maps" }
        

तीसरा चरण: प्रोजेक्ट में अपना एपीआई पासकोड जोड़ना

इस सेक्शन में, एपीआई पासकोड को सेव करने का तरीका बताया गया है, ताकि आपका ऐप्लिकेशन इसे सुरक्षित तरीके से रेफ़र कर सके. आपको अपने एपीआई पासकोड को वर्शन कंट्रोल सिस्टम में शामिल नहीं करना चाहिए. इसलिए, हमारा सुझाव है कि इसे अपने प्रोजेक्ट की रूट डायरेक्ट्री में मौजूद secrets.properties फ़ाइल में सेव करें और उस फ़ाइल को वर्शन कंट्रोल से बाहर रखें. Gradle की प्रॉपर्टी फ़ाइलों के बारे में ज़्यादा जानने के लिए, Gradle की प्रॉपर्टी फ़ाइलें देखें.

इस काम को आसान बनाने के लिए, हमारा सुझाव है कि आप Android के लिए सीक्रेट ग्रेडल प्लग इन का इस्तेमाल करें.

Android के लिए सीक्रेट ग्रेडल प्लग इन इंस्टॉल करने और अपना एपीआई पासकोड सेव करने के लिए:

  1. Android Studio में, सबसे ऊपर वाले लेवल की build.gradle.kts या build.gradle फ़ाइल खोलें और plugins ब्लॉक में यह कोड जोड़ें.

    Kotlin

    plugins {
        // ...
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
    }

    Groovy

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false
    }
  2. मॉड्यूल-लेवल की build.gradle.kts या build.gradle फ़ाइल खोलें और plugins एलिमेंट में यह कोड जोड़ें.

    Kotlin

    plugins {
        id("com.android.application")
        // ...
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }

    Groovy

    plugins {
        id 'com.android.application'
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }
  3. अगर Android Studio का इस्तेमाल किया जा रहा है, तो अपने प्रोजेक्ट को Gradle के साथ सिंक करें.
  4. सबसे ऊपर वाले लेवल की डायरेक्ट्री में मौजूद secrets.properties फ़ाइल खोलें. इसके बाद, यह कोड जोड़ें. YOUR_API_KEY को अपने एपीआई पासकोड से बदलें. पक्का करें कि आपने secrets.properties को अपनी .gitignore फ़ाइल में जोड़ा हो. इसके अलावा, इसे अपने वर्शन कंट्रोल सिस्टम से बाहर रखें, ताकि आपका एपीआई पासकोड वर्शन कंट्रोल में शामिल न हो.
    MAPS_API_KEY=YOUR_API_KEY
  5. सबसे ऊपर वाले लेवल की डायरेक्ट्री में local.defaults.properties फ़ाइल बनाएं. यह फ़ाइल, secrets.properties फ़ाइल वाले फ़ोल्डर में ही होनी चाहिए. इसके बाद, यह कोड जोड़ें.

    MAPS_API_KEY=DEFAULT_API_KEY

    इस फ़ाइल का मकसद, एपीआई पासकोड के लिए बैकअप की जगह उपलब्ध कराना है. ऐसा इसलिए, ताकि अगर secrets.properties फ़ाइल न मिले, तो भी बिल्ड न रुकें. ऐसा तब हो सकता है, जब आपने किसी ऐसे वर्शन कंट्रोल सिस्टम से ऐप्लिकेशन क्लोन किया हो जिसमें secrets.properties शामिल न हो. साथ ही, आपने अपने एपीआई पासकोड को सेव करने के लिए, स्थानीय तौर पर secrets.properties फ़ाइल न बनाई हो.

  6. अपनी AndroidManifest.xml फ़ाइल में, com.google.android.geo.API_KEY पर जाएं और android:value एट्रिब्यूट को इस तरह अपडेट करें:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

    ध्यान दें: एपीआई पासकोड के लिए, com.google.android.geo.API_KEY मेटाडेटा के नाम के तौर पर इस्तेमाल करने का सुझाव दिया जाता है. इस नाम वाली कुंजी का इस्तेमाल, Android प्लैटफ़ॉर्म पर Google Maps पर आधारित कई एपीआई की पुष्टि करने के लिए किया जा सकता है. इनमें, Android के लिए Maps SDK टूल भी शामिल है. पुराने सिस्टम के साथ काम करने की सुविधा के लिए, एपीआई, नाम com.google.android.maps.v2.API_KEY को भी सपोर्ट करता है. इस पुराने नाम से, सिर्फ़ Android Maps API v2 की पुष्टि की जा सकती है. कोई ऐप्लिकेशन, एपीआई पासकोड के मेटाडेटा के नाम के तौर पर इनमें से सिर्फ़ एक नाम तय कर सकता है. अगर दोनों नाम तय किए जाते हैं, तो एपीआई एक अपवाद दिखाता है.

  7. Android Studio में, मॉड्यूल-लेवल की build.gradle.kts या build.gradle फ़ाइल खोलें और secrets प्रॉपर्टी में बदलाव करें. अगर secrets प्रॉपर्टी मौजूद नहीं है, तो इसे जोड़ें.

    प्लगिन की प्रॉपर्टी में बदलाव करके, propertiesFileName को "secrets.properties", defaultPropertiesFileName को "local.defaults.properties", और अन्य प्रॉपर्टी को सेट करें.

    Kotlin

    secrets {
        // To add your Maps API key to this project:
        // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file).
        // 2. Add this line, where YOUR_API_KEY is your API key:
        //        MAPS_API_KEY=YOUR_API_KEY
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    }

    Groovy

    secrets {
        // To add your Maps API key to this project:
        // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file).
        // 2. Add this line, where YOUR_API_KEY is your API key:
        //        MAPS_API_KEY=YOUR_API_KEY
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    }

चौथा चरण: ऐप्लिकेशन का मेनिफ़ेस्ट अपडेट करना

इस सेक्शन में, AndroidManifest.xml फ़ाइल में जोड़ी जाने वाली सेटिंग के बारे में बताया गया है.

Google Play services का वर्शन नंबर

application एलिमेंट में यह एलान जोड़ें. इससे, Google Play services का वह वर्शन एम्बेड हो जाता है जिससे ऐप्लिकेशन कंपाइल किया गया था.

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>

जगह की जानकारी की अनुमति

अगर आपके ऐप्लिकेशन को उपयोगकर्ता की जगह की जानकारी ऐक्सेस करनी है, तो आपको अपनी AndroidManifest.xml फ़ाइल में, जगह की जानकारी की अनुमति का अनुरोध करना होगा. इसके लिए, और विकल्प मौजूद हैं. ACCESS_FINE_LOCATION से डिवाइस की सटीक जगह की जानकारी मिलती है, जबकि ACCESS_COARSE_LOCATION से कम सटीक जानकारी मिलती है. ज़्यादा जानकारी के लिए, जगह की जानकारी का डेटा से जुड़ी गाइड देखें.

ACCESS_FINE_LOCATION की अनुमति का अनुरोध करने के लिए, manifest एलिमेंट में यह कोड जोड़ें:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

बाहरी स्टोरेज की अनुमति

अगर आपका ऐप्लिकेशन, Google Play services SDK के वर्शन 8.3 या इसके बाद के वर्शन को टारगेट करता है, तो आपको WRITE_EXTERNAL_STORAGE अनुमति की ज़रूरत नहीं है. अगर आपका ऐप्लिकेशन, Google Play services SDK के पुराने वर्शन को टारगेट करता है, तो आपको WRITE_EXTERNAL_STORAGE अनुमति का अनुरोध, manifest एलिमेंट में करना होगा.

<uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Apache HTTP Legacy लाइब्रेरी

अगर com.google.android.gms:play-services-maps:16.0.0 या इससे पुराने वर्शन का इस्तेमाल किया जा रहा है और आपका ऐप्लिकेशन, टारगेट एपीआई लेवल 28 (Android 9.0) या इसके बाद के वर्शन को टारगेट कर रहा है, तो आपको AndroidManifest.xml के <application> एलिमेंट में यह एलान शामिल करना होगा. अगर ऐसा नहीं है, तो इस एलान को छोड़ दें.

<uses-library
    android:name="org.apache.http.legacy"
    android:required="false"/>

पांचवा चरण: Android डिवाइस सेट अप करना

Android के लिए Maps SDK टूल का इस्तेमाल करने वाला ऐप्लिकेशन चलाने के लिए, आपको इसे Android 6.0 या इसके बाद के वर्शन पर आधारित किसी Android डिवाइस या Android Emulator पर डिप्लॉय करना होगा. साथ ही, इसमें Google के एपीआई शामिल होने चाहिए.

  • Android डिवाइस का इस्तेमाल करने के लिए, हार्डवेयर डिवाइस पर ऐप्लिकेशन चलाना लेख में दिए गए निर्देशों का पालन करें.
  • Android Emulator का इस्तेमाल करने के लिए, वर्चुअल डिवाइस बनाया जा सकता है. साथ ही, Android Studio के साथ आने वाले डिवाइस मैनेजर का इस्तेमाल करके, Emulator इंस्टॉल किया जा सकता है.

छठा चरण: Play services के साथ काम करने की सुविधा की जांच करना (ज़रूरी नहीं)

Android के लिए Maps SDK टूल के लिए, यह ज़रूरी है कि जिस डिवाइस पर आपका ऐप्लिकेशन डिप्लॉय किया गया है उसमें Google Play services इंस्टॉल हो. Google एक ऐसा तरीका उपलब्ध कराता है जिसे आपके ऐप्लिकेशन से कॉल किया जा सकता है, ताकि यह जांच की जा सके. ज़्यादा जानकारी के लिए, यह लेख देखें: यह जांच करना कि Google Play services इंस्टॉल है या नहीं.

अगले चरण

अपने प्रोजेक्ट को कॉन्फ़िगर करने के बाद, मैप जोड़ा जा सकता है.