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

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

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

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

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

दूसरा चरण. SDK टूल सेट अप करें

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

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

    ग्रूवी

    dependencies {
    
        // Maps SDK for Android
        implementation 'com.google.android.gms:play-services-maps:19.0.0'
    }

    Kotlin

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

    ग्रूवी

    android {
        compileSdk 34
    
        defaultConfig {
            minSdk 21
            // ...
        }
    }

    Kotlin

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

    ग्रूवी

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

    Kotlin

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

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

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

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

अपने Google Maps प्रोजेक्ट में Android के लिए Secrets Gradle प्लग इन इंस्टॉल करने के लिए:

  1. Android Studio में, अपनी टॉप-लेवल build.gradle या build.gradle.kts फ़ाइल खोलें और buildscript में जाकर dependencies एलिमेंट में यह कोड जोड़ें.

    ग्रूवी

    buildscript {
        dependencies {
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
        }
    }

    Kotlin

    buildscript {
        dependencies {
            classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1")
        }
    }
    
  2. अपनी मॉड्यूल-लेवल build.gradle फ़ाइल खोलें और नीचे दिए गए कोड को plugins एलिमेंट में जोड़ें.

    ग्रूवी

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }

    Kotlin

    plugins {
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. अपनी मॉड्यूल-लेवल build.gradle फ़ाइल में, पक्का करें कि targetSdk और compileSdk 34 पर सेट हों.
  4. फ़ाइल सेव करें और अपने प्रोजेक्ट को Gradle के साथ सिंक करें.
  5. secrets.properties फ़ाइल को अपनी टॉप-लेवल की डायरेक्ट्री में खोलें और फिर नीचे दिया गया कोड जोड़ें. YOUR_API_KEY को अपनी एपीआई पासकोड से बदलें. अपनी कुंजी इस फ़ाइल में सेव करें, क्योंकि secrets.properties के लिए वर्शन कंट्रोल सिस्टम की जांच नहीं की जा रही है.
    MAPS_API_KEY=YOUR_API_KEY
  6. फ़ाइल सेव करें.
  7. अपनी टॉप-लेवल डायरेक्ट्री में local.defaults.properties फ़ाइल बनाएं. वह फ़ोल्डर वही करें जो secrets.properties फ़ाइल में है. इसके बाद, नीचे दिया गया कोड जोड़ें.

    MAPS_API_KEY=DEFAULT_API_KEY

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

  8. फ़ाइल सेव करें.
  9. अपनी AndroidManifest.xml फ़ाइल में, com.google.android.geo.API_KEY पर जाएं और android:value attribute को अपडेट करें. अगर <meta-data> टैग मौजूद नहीं है, तो उसे <application> टैग के चाइल्ड टैग के तौर पर बनाएं.
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />

    Note: com.google.android.geo.API_KEY is the recommended metadata name for the API key. A key with this name can be used to authenticate to multiple Google Maps-based APIs on the Android platform, including the Maps SDK for Android. For backwards compatibility, the API also supports the name com.google.android.maps.v2.API_KEY. This legacy name allows authentication to the Android Maps API v2 only. An application can specify only one of the API key metadata names. If both are specified, the API throws an exception.

  10. In Android Studio, open your module-level build.gradle or build.gradle.kts file and edit the secrets property. If the secrets property does not exist, add it.

    Edit the properties of the plugin to set propertiesFileName to secrets.properties, set defaultPropertiesFileName to local.defaults.properties, and set any other properties.

    Groovy

    secrets {
        // Optionally specify a different file name containing your secrets.
        // The plugin defaults to "local.properties"
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    
        // Configure which keys should be ignored by the plugin by providing regular expressions.
        // "sdk.dir" is ignored by default.
        ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore"
        ignoreList.add("sdk.*")       // Ignore all keys matching the regexp "sdk.*"
    }
            

    Kotlin

    secrets {
        // Optionally specify a different file name containing your secrets.
        // The plugin defaults to "local.properties"
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    
        // Configure which keys should be ignored by the plugin by providing regular expressions.
        // "sdk.dir" is ignored by default.
        ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore"
        ignoreList.add("sdk.*")       // Ignore all keys matching the regexp "sdk.*"
    }
            

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

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

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

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

<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 के पुराने वर्शन को टारगेट किया जा रहा है, तो आपको manifest एलिमेंट में WRITE_EXTERNAL_STORAGE अनुमति का अनुरोध करना होगा.

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

Apache एचटीटीपी लेगसी लाइब्रेरी

अगर 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 डिवाइस या Android एम्युलेटर पर डिप्लॉय करना होगा जो Android 5.0 या इसके बाद वाले वर्शन पर आधारित हो और जिसमें Google API शामिल हों.

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

छठा चरण: विकल्प के तौर पर, Play Service से जुड़ी सहायता पाना

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

अगले चरण

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