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 वर्शन का इस्तेमाल करने वाले डेवलपमेंट एनवायरमेंट के बारे में बताया गया है.

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

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

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

    Kotlin

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

    ग्रूवी

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

    Kotlin

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

    ग्रूवी

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

    Kotlin

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

    ग्रूवी

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

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

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

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

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

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

    Kotlin

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

    ग्रूवी

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

    Kotlin

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

    ग्रूवी

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }
  3. अपने मॉड्यूल-लेवल की build.gradle.kts या 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}" />

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

  10. 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 same folder as the 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"
    
        // 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.*"
    }
            

    ग्रूवी

    secrets {
        // To add your Maps API key to this project:
        // 1. If the secrets.properties file does not exist, create it in the same folder as the 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"
    
        // 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 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 के पुराने वर्शन को टारगेट किया जा रहा है, तो आपको manifest एलिमेंट में WRITE_EXTERNAL_STORAGE अनुमति का अनुरोध करना होगा.

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

Apache HTTP लेगसी लाइब्रेरी

अगर 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 डिवाइस सेट अप करना

Maps SDK for Android का इस्तेमाल करने वाले ऐप्लिकेशन को चलाने के लिए, आपको उसे Android 5.0 या इसके बाद के वर्शन पर आधारित किसी Android डिवाइस या Android एमुलेटर पर डिप्लॉय करना होगा. साथ ही, उसमें Google API भी शामिल होने चाहिए.

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

छठा चरण: Play सेवा की सहायता टीम से संपर्क करना

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

अगले चरण

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