ویرایشگر یونیتی به نسخه خاصی از Gradle قفل شده است. نسخههای قبلی ویرایشگر یونیتی از نسخههای قدیمیتر Gradle استفاده میکنند که با آخرین نسخه Google Mobile Ads سازگار نیستند.
برای ساخت اندروید، نسخه ویرایشگر یونیتی مورد نظر خود را انتخاب کنید:
۲۰۲۳.۱ یا بالاتر
پیشپردازندهی ساخت Gradle را فعال کنید
پیشپردازندهی ساخت Gradle به طور پیشفرض در Unity Editor نسخههای 2021.3.41f1 و بالاتر فعال است. این پردازنده به طور خودکار تمام تنظیمات لازم Gradle و player را برای پشتیبانی از جدیدترین افزونهی Unity تبلیغات موبایلی گوگل در نسخههای قبلی Unity Editor اعمال میکند.
تنظیمات اندروید و گریدل را به صورت دستی پیکربندی کنید
فعال کردن قالبهای سفارشی Gradle
به تنظیمات پروژه > پخشکننده > اندروید > تنظیمات انتشار > ساخت بروید و Custom Main Gradle Template و Custom Gradle Properties Template فعال کنید.

تنظیم API هدف سطح ۳۴
از منوی اصلی، مسیر Edit > Project Settings > Player > Android > Other Settings را باز کنید و Target API Level را روی API Level 34 یا بالاتر تنظیم کنید.

۲۰۲۱.۳.۴۱f۱ - ۲۰۲۲.۳
پیشپردازندهی ساخت Gradle را فعال کنید
پیشپردازندهی ساخت Gradle به طور پیشفرض در Unity Editor نسخههای 2021.3.41f1 و بالاتر فعال است. این پردازنده به طور خودکار تمام تنظیمات لازم Gradle و player را برای پشتیبانی از جدیدترین افزونهی Unity تبلیغات موبایلی گوگل در نسخههای قبلی Unity Editor اعمال میکند.
تنظیمات اندروید و گریدل را به صورت دستی پیکربندی کنید
فعال کردن قالبهای سفارشی Gradle
به تنظیمات پروژه > پخشکننده > اندروید > تنظیمات انتشار > ساخت بروید و Custom Main Gradle Template و Custom Gradle Properties Template فعال کنید.

تنظیم API هدف سطح ۳۴
از منوی اصلی، مسیر Edit > Project Settings > Player > Android > Other Settings را باز کنید و Target API Level را روی API Level 34 یا بالاتر تنظیم کنید.

لیست نادیده گرفتن jetifier را به `gradleTemplate.properties` اضافه کنید
Assets/Plugins/Android/gradleTemplate.properties را ویرایش کرده و خط زیر را به آن اضافه کنید:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
فایل `minSDKVersion` را از `AndroidManifest.xml` حذف کنید.
Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml را ویرایش کنید و android:minSdkVersion="21" از گره uses-sdk حذف کنید. 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>
۲۰۱۹.۴ - ۲۰۲۱.۳.۳۷f۱
پیشنیازها
قبل از ادامه، مطمئن شوید که موارد زیر را دارید:
- آخرین نسخه پایدار اندروید استودیو را دانلود و نصب کنید.
- اختیاری: برای جزئیات مربوط به ساخت برای اندروید، به نسخههای جاوا در نسخههای اندروید مراجعه کنید.
فعال کردن قالبهای سفارشی Gradle
به تنظیمات پروژه > پخشکننده > اندروید > تنظیمات انتشار > ساخت بروید و Custom Main Gradle Template و Custom Gradle Properties Template فعال کنید.

تنظیم API هدف سطح ۳۴
از منوی اصلی، مسیر Edit > Project Settings > Player > Android > Other Settings را باز کنید و Target API Level را روی API Level 34 یا بالاتر تنظیم کنید.

اکسپورت به اندروید استودیو
تنظیمات ساخت اندروید را با انتخاب File (یا Unity Editor در MacOS) > Build Settings تغییر دهید و Export Project را تیک بزنید:

اگر هشداری مبنی بر فقدان API سطح ۳۴ پلتفرم SDK اندروید دریافت کردید، گزینه «بهروزرسانی SDK اندروید» را انتخاب کنید.
اندروید استودیو را باز کنید
این بخش شامل مراحلی است که در اندروید استودیو انجام میشوند.
پیکربندی Gradle JDK را بهروزرسانی کنید
تنظیمات Gradle را از مسیر File (یا Android Studio در MacOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle باز کنید. منوی کشویی Gradle JDK را پیدا کنید و Gradle JDK را روی استفاده از JDK 17 یا بالاتر تنظیم کنید.

اگر JDK 17 را نصب ندارید، گزینههای دانلود JDK را از نوار منوی Gradle JDK انتخاب کرده و یک نسخه سازگار را دانلود کنید. ما JetBrains runtime vendor با پشتیبانی aarch64 را توصیه میکنیم تا با آنچه اندروید استودیو توزیع میکند، مطابقت داشته باشد.
بهروزرسانی 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
- ویژگی
namespaceرا با استفاده از مقدار ویژگیpackageازlauncher/AndroidManifest.xmlتنظیم کنید. - تنظیم
sourceCompatibilityوtargetCompatibilityروی جاوا ۱۷
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 سطح پروژه را بهروزرسانی کنید.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: ['<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 } }
اجرای پروژه اندروید
از اندروید استودیو، gradle sync را اجرا کنید و پروژه را اجرا کنید .