Unity Editor, Gradle के किसी खास वर्शन के साथ काम करता है. Unity Editor के पुराने वर्शन, Gradle के पुराने वर्शन के साथ काम करते हैं. ये वर्शन, Google Mobile Ads के नए वर्शन के साथ काम नहीं करते.
Android के लिए बिल्ड करने के लिए, Unity Editor का अपना पसंदीदा वर्शन चुनें:
2023.1 या इसके बाद का वर्शन
Gradle बिल्ड प्री-प्रोसेसर चालू करें
Unity Editor 2021.3.41f1 और इसके बाद के वर्शन में, Gradle बिल्ड प्री-प्रोसेसर डिफ़ॉल्ट रूप से चालू होता है. प्रोसेसर, Unity Editor के पुराने वर्शन पर नए Google Mobile Ads Unity Plugin के साथ काम करने के लिए, Gradle और प्लेयर की सभी ज़रूरी सेटिंग अपने-आप लागू करता है.
Android और Gradle की सेटिंग को मैन्युअल तरीके से कॉन्फ़िगर करना
Gradle के कस्टम टेंप्लेट चालू करना
प्रोजेक्ट सेटिंग > प्लेयर > Android > पब्लिशिंग सेटिंग > बिल्ड
पर जाएं. इसके बाद, Custom Main Gradle Template और Custom Gradle Properties Template को चालू करें.
टारगेट एपीआई लेवल सेट करना
मुख्य मेन्यू में, Edit > Project Settings > Player > Android > Other Settings खोलें. इसके बाद, Target API Level को API Level 24 या इसके बाद के लेवल पर सेट करें.
2021.3.41f1 - 2022.3
Gradle बिल्ड प्री-प्रोसेसर चालू करें
Unity Editor 2021.3.41f1 और इसके बाद के वर्शन में, Gradle बिल्ड प्री-प्रोसेसर डिफ़ॉल्ट रूप से चालू होता है. प्रोसेसर, Unity Editor के पुराने वर्शन पर नए Google Mobile Ads Unity Plugin के साथ काम करने के लिए, Gradle और प्लेयर की सभी ज़रूरी सेटिंग अपने-आप लागू करता है.
Android और Gradle की सेटिंग को मैन्युअल तरीके से कॉन्फ़िगर करना
Gradle के कस्टम टेंप्लेट चालू करना
प्रोजेक्ट सेटिंग > प्लेयर > Android > पब्लिशिंग सेटिंग > बिल्ड
पर जाएं. इसके बाद, Custom Main Gradle Template और Custom Gradle Properties Template को चालू करें.
टारगेट एपीआई लेवल सेट करना
मुख्य मेन्यू में, Edit > Project Settings > Player > Android > Other Settings खोलें. इसके बाद, Target API Level को API Level 24 या इसके बाद के लेवल पर सेट करें.
`gradleTemplate.properties` में, jetifier को नज़रअंदाज़ किए जाने वाले कोड की सूची जोड़ना
Assets/Plugins/Android/gradleTemplate.properties में बदलाव करें और यह लाइन जोड़ें:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
`AndroidManifest.xml` से `minSDKVersion` हटाना
Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml में बदलाव करें और uses-sdk नोड से android:minSdkVersion="21" हटाएं.
आपका AndroidManifest.xml इस तरह दिखना चाहिए:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1"> <uses-sdk /> <application> <uses-library android:required="false" android:name="org.apache.http.legacy"/> </application> </manifest>
2019.4 - 2021.3.37f1
ज़रूरी शर्तें
आगे बढ़ने से पहले, पक्का करें कि आपके पास ये चीज़ें हों:
- Android Studio का नया स्टेबल वर्शन डाउनलोड और इंस्टॉल करें.
- ज़रूरी नहीं: Android के लिए बिल्ड करने के बारे में ज़्यादा जानने के लिए, Android बिल्ड में Java के वर्शन लेख पढ़ें
Gradle के कस्टम टेंप्लेट चालू करना
प्रोजेक्ट सेटिंग > प्लेयर > Android > पब्लिशिंग सेटिंग > बिल्ड
पर जाएं. इसके बाद, Custom Main Gradle Template और Custom Gradle Properties Template को चालू करें.
टारगेट एपीआई लेवल सेट करना
मुख्य मेन्यू में, Edit > Project Settings > Player > Android > Other Settings खोलें. इसके बाद, Target API Level को API Level 35 या इसके बाद के लेवल पर सेट करें.
Android Studio में एक्सपोर्ट करना
File (या MacOS पर Unity Editor) > Build Settings चुनकर, Android बिल्ड की सेटिंग में बदलाव करें. इसके बाद, Export Project को चुनें:
अगर आपको यह चेतावनी मिलती है कि Android SDK प्लैटफ़ॉर्म API लेवल 35 मौजूद नहीं है, तो ' Android SDK अपडेट करें' विकल्प चुनें.
Android Studio खोलना
इस सेक्शन में, Android Studio में किए जाने वाले चरणों के बारे में बताया गया है.
Gradle JDK का कॉन्फ़िगरेशन अपडेट करना
File (या MacOS पर Android Studio) > Settings > Build > Execution > Deployment > Build Tools > Gradle पर जाकर, Gradle की सेटिंग खोलें. Gradle JDK ड्रॉप-डाउन को ढूंढें और Gradle JDK को JDK 17 या इसके बाद के वर्शन पर सेट करें.
अगर आपके पास JDK 17 इंस्टॉल नहीं है, तो Gradle JDK के मेन्यू बार से Download JDK विकल्प चुनें और इसके साथ काम करने वाला वर्शन डाउनलोड करें. हमारा सुझाव है कि आप JetBrains रनटाइम वेंडर का इस्तेमाल करें. इसमें aarch64 के लिए सहायता उपलब्ध है. यह 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 को अपडेट करना
distributionUrl को Gradle 8.1.1 या इसके बाद के वर्शन पर सेट करें.
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 35 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: ['<em>.jar']) implementation fileTree(dir: 'libs', include: ['</em>.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 सिंक चलाएं और प्रोजेक्ट चलाएं.