Android के लिए Unity बनाना

Unity Editor, Gradle के किसी खास वर्शन के साथ काम करता है. Unity Editor के पुराने वर्शन, Gradle के पुराने वर्शन का इस्तेमाल करते हैं. ये वर्शन, Google Mobile Ads के नए वर्शन के साथ काम नहीं करते.

नीचे दी गई टेबल में, आपके Unity Editor के आधार पर, Google Mobile Ads प्लग इन के काम करने वाले सबसे ज़्यादा वर्शन के बारे में बताया गया है:

Unity Editor Google Mobile Ads Unity प्लग इन का वर्शन
2023.1 या इसके बाद का वर्शन नया
2021.3.41f1 - 2022.3 9.1.0
2021.3.37f1 या इससे पहले का वर्शन 8.5.3

Google Mobile Ads के Unity प्लगिन के नए वर्शन का इस्तेमाल करने के लिए, Gradle को मैन्युअल तरीके से अपडेट किया जा सकता है. इसमें Unity के पुराने एडिटर भी शामिल हैं. Android ऐप्लिकेशन बनाने के लिए, Unity Editor का अपना पसंदीदा वर्शन चुनें:

ज़रूरी शर्तें

जारी रखने से पहले, पक्का करें कि आपके पास ये चीज़ें हैं:

कस्टम Gradle टेंप्लेट चालू करना

प्रोजेक्ट सेटिंग > प्लेयर > Android > पब्लिश करने की सेटिंग > बिल्ड पर जाएं और Custom Main Gradle Template और Custom Gradle Properties Template को चालू करें.

कस्टम Gradle टेंप्लेट चालू करना

टारगेट एपीआई लेवल 34 सेट करना

मुख्य मेन्यू में, बदलाव करें > प्रोजेक्ट सेटिंग > प्लेयर > Android > अन्य सेटिंग खोलें. इसके बाद, टारगेट एपीआई लेवल को एपीआई लेवल 34 या उसके बाद के वर्शन पर सेट करें.

टारगेट एपीआई लेवल सेट करना

Android प्रोजेक्ट चलाना

Android Studio में, gradle sync चलाएं और प्रोजेक्ट चलाएं.

ज़रूरी शर्तें

जारी रखने से पहले, पक्का करें कि आपके पास ये चीज़ें हैं:

  • Android Studio का सबसे नया वर्शन डाउनलोड और इंस्टॉल करें.

कस्टम Gradle टेंप्लेट चालू करना

प्रोजेक्ट सेटिंग > प्लेयर > Android > पब्लिश करने की सेटिंग > बिल्ड पर जाएं और Custom Main Gradle Template और Custom Gradle Properties Template को चालू करें.

कस्टम Gradle टेंप्लेट चालू करना

टारगेट एपीआई लेवल 34 सेट करना

मुख्य मेन्यू में, बदलाव करें > प्रोजेक्ट सेटिंग > प्लेयर > Android > अन्य सेटिंग खोलें. इसके बाद, टारगेट एपीआई लेवल को एपीआई लेवल 34 या उसके बाद के वर्शन पर सेट करें.

टारगेट एपीआई लेवल सेट करना

Android Studio में एक्सपोर्ट करना

Android बिल्ड सेटिंग में बदलाव करने के लिए, फ़ाइल (या MacOS पर Unity Editor) > बिल्ड सेटिंग चुनें और 'प्रोजेक्ट एक्सपोर्ट करें' को चुनें:

प्रोजेक्ट एक्सपोर्ट करना

Android Studio खोलना

इस सेक्शन में, Android Studio में किए जाने वाले चरण शामिल हैं.

Gradle JDK कॉन्फ़िगरेशन अपडेट करना

Gradle की सेटिंग खोलने के लिए, फ़ाइल (या MacOS पर Android Studio) > सेटिंग > बिल्ड > एक्सीक्यूशन > डिप्लॉयमेंट > बिल्ड टूल > Gradle पर जाएं. Gradle JDK ड्रॉप-डाउन ढूंढें और JDK 17 या उसके बाद के वर्शन का इस्तेमाल करने के लिए, Gradle JDK को सेट करें.

Gradle JDK कॉन्फ़िगरेशन अपडेट करना

अगर आपने JDK 17 इंस्टॉल नहीं किया है, तो Gradle JDK मेन्यू बार से JDK डाउनलोड करें विकल्प चुनें और काम करने वाला वर्शन डाउनलोड करें. हमारा सुझाव है कि आप JetBrains रनटाइम वेंडर का इस्तेमाल करें. यह रनटाइम, Android Studio के साथ डिस्ट्रिब्यूट किए जाने वाले रनटाइम से मेल खाता है.

प्रोजेक्ट-लेवल build.gradle अपडेट करना

Gradle टूल के वर्शन को 8.1.1 या उसके बाद के वर्शन पर सेट करें.


plugins {
    id 'com.android.application' version '8.1.1' apply false
    id 'com.android.library' version '8.1.1' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

/gradle/gradle-wrapper.properties को अपडेट करें

Gradle 8.1.1 या इसके बाद के वर्शन का इस्तेमाल करने के लिए, distributionUrl को सेट करें.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

Android प्रोजेक्ट चलाना

Android Studio में, gradle sync चलाएं और प्रोजेक्ट चलाएं.

ज़रूरी शर्तें

जारी रखने से पहले, पक्का करें कि आपके पास ये चीज़ें हैं:

  • Android Studio का सबसे नया वर्शन डाउनलोड और इंस्टॉल करें.

कस्टम Gradle टेंप्लेट चालू करना

प्रोजेक्ट सेटिंग > प्लेयर > Android > पब्लिश करने की सेटिंग > बिल्ड पर जाएं और Custom Main Gradle Template और Custom Gradle Properties Template को चालू करें.

कस्टम Gradle टेंप्लेट चालू करना

टारगेट एपीआई लेवल 34 सेट करना

मुख्य मेन्यू में, बदलाव करें > प्रोजेक्ट सेटिंग > प्लेयर > Android > अन्य सेटिंग खोलें. इसके बाद, टारगेट एपीआई लेवल को एपीआई लेवल 34 या उसके बाद के वर्शन पर सेट करें.

टारगेट एपीआई लेवल सेट करना

Android Studio में एक्सपोर्ट करना

Android बिल्ड सेटिंग में बदलाव करने के लिए, फ़ाइल (या MacOS पर Unity Editor) > बिल्ड सेटिंग चुनें और 'प्रोजेक्ट एक्सपोर्ट करें' को चुनें:

प्रोजेक्ट एक्सपोर्ट करना

अगर आपको चेतावनी मिलती है कि Android SDK प्लैटफ़ॉर्म एपीआई लेवल 34 मौजूद नहीं है, तो 'Android SDK अपडेट करें' विकल्प चुनें.

Android Studio खोलना

इस सेक्शन में, Android Studio में किए जाने वाले चरण शामिल हैं.

Gradle JDK कॉन्फ़िगरेशन अपडेट करना

Gradle की सेटिंग खोलने के लिए, फ़ाइल (या MacOS पर Android Studio) > सेटिंग > बिल्ड > एक्सीक्यूशन > डिप्लॉयमेंट > बिल्ड टूल > Gradle पर जाएं. Gradle JDK ड्रॉप-डाउन ढूंढें और JDK 17 या उसके बाद के वर्शन का इस्तेमाल करने के लिए, Gradle JDK को सेट करें.

Gradle JDK कॉन्फ़िगरेशन अपडेट करना

अगर आपने JDK 17 इंस्टॉल नहीं किया है, तो Gradle JDK मेन्यू बार से JDK डाउनलोड करें विकल्प चुनें और काम करने वाला वर्शन डाउनलोड करें. हमारा सुझाव है कि आप JetBrains रनटाइम वेंडर का इस्तेमाल करें. यह रनटाइम, Android Studio के साथ डिस्ट्रिब्यूट किए जाने वाले रनटाइम से मेल खाता है.

प्रोजेक्ट-लेवल build.gradle अपडेट करना

Gradle टूल के वर्शन को 8.1.1 या उसके बाद के वर्शन पर सेट करें.


plugins {
    id 'com.android.application' version '8.1.1' apply false
    id 'com.android.library' version '8.1.1' apply false
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

/gradle/gradle-wrapper.properties को अपडेट करें

Gradle 8.1.1 या इसके बाद के वर्शन का इस्तेमाल करने के लिए, distributionUrl को सेट करें.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

launcher/build.gradle को अपडेट करें

  • launcher/AndroidManifest.xml में मौजूद package एट्रिब्यूट की वैल्यू का इस्तेमाल करके, namespace एट्रिब्यूट की वैल्यू सेट करें
  • sourceCompatibility और targetCompatibility को Java 17 पर सेट करना

apply plugin: 'com.android.application'

dependencies {
    implementation project(':unityLibrary')
}

android {
    namespace "com.google.android.gms.example"
    compileSdkVersion 35
    buildToolsVersion '35.0.0'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    defaultConfig {
        minSdkVersion 28
        targetSdkVersion 35
        applicationId 'com.google.android.gms.example'
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
        versionCode 1
        versionName '1.0'
    }

    aaptOptions {
        noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp']
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }

    lintOptions {
        abortOnError false
    }

    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
            jniDebuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt')
            signingConfig signingConfigs.debug
        }
    }

    packagingOptions {
        doNotStrip '*/armeabi-v7a/*.so'
        doNotStrip '*/arm64-v8a/*.so'
        doNotStrip '*/x86/*.so'
        doNotStrip '*/x86_64/*.so'
        jniLibs {
            useLegacyPackaging true
        }
    }

    bundle {
        language {
            enableSplit = false
        }
        density {
            enableSplit = false
        }
        abi {
            enableSplit = true
        }
    }
}

apply from: '../unityLibrary/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'

प्रोजेक्ट-लेवल settings.gradle अपडेट करें

pluginManagement और dependencyResolutionManagement सेक्शन सेट करें.


pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

include ':launcher', ':unityLibrary'
include 'unityLibrary:GoogleMobileAdsPlugin.androidlib'

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {

        google()
        mavenCentral()
        flatDir {
            dirs "${project(':unityLibrary').projectDir}/libs"
        }
    }
}

unityLibrary/build.gradle अपडेट करना

  • namespace को "com.unity3d.player" वैल्यू पर सेट करें
  • sourceCompatibility और targetCompatibility को JavaVersion.VERSION_17 पर सेट करें

    apply plugin: 'com.android.library'

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        // Android Resolver Dependencies Start
        implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
        implementation 'com.google.android.gms:play-services-ads:23.6.0'
        implementation 'com.google.android.ump:user-messaging-platform:3.1.0'
        // Android Resolver Dependencies End
        implementation(name: 'googlemobileads-unity', ext:'aar')
        implementation project('GoogleMobileAdsPlugin.androidlib')
    }

    // Android Resolver Exclusions Start
    android {
      packagingOptions {
          exclude ('/lib/armeabi/*' + '*')
          exclude ('/lib/mips/*' + '*')
          exclude ('/lib/mips64/*' + '*')
          exclude ('/lib/x86/*' + '*')
      }
    }
    // Android Resolver Exclusions End

    android {
        namespace "com.unity3d.player"
        compileSdkVersion 34
        buildToolsVersion '30.0.2'

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_17
            targetCompatibility JavaVersion.VERSION_17
        }

        defaultConfig {
            minSdkVersion 28
            targetSdkVersion 34
            ndk {
                abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
            }
            versionCode 1
            versionName '1.0'
            consumerProguardFiles 'proguard-unity.txt'
        }

        lintOptions {
            abortOnError false
        }

        aaptOptions {
            ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
        }

        packagingOptions {
            doNotStrip '*/armeabi-v7a/*.so'
            doNotStrip '*/arm64-v8a/*.so'
            doNotStrip '*/x86_64/*.so'
        }
    }


    apply from: 'GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'
    gradle.projectsEvaluated { apply from: 'GoogleMobileAdsPlugin.androidlib/validate_dependencies.gradle' }

unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle को अपडेट करें

namespace एट्रिब्यूट की वैल्यू को "com.google.unity.ads" पर सेट करें.


apply plugin: 'android-library'

dependencies {
    implementation fileTree(dir: 'bin', include: ['.jar'])
    implementation fileTree(dir: 'libs', include: ['.jar'])
}

android {
    namespace "com.google.unity.ads"
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            //java.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }
    }

    compileSdkVersion 34
    buildToolsVersion '30.0.2'
    defaultConfig {
        targetSdkVersion 31
    }

    lintOptions {
        abortOnError false
    }
}

Android प्रोजेक्ट चलाना

Android Studio में, gradle sync चलाएं और प्रोजेक्ट चलाएं.