Unity Editor به نسخه خاصی از Gradle قفل شده است. نسخههای قبلی Unity Editor از نسخههای قبلی Gradle استفاده میکنند که با جدیدترین نسخه «تبلیغات تلفن همراه Google» ناسازگار است.
برای ساختن Android، نسخه Unity Editor ترجیحیتان را انتخاب کنید:
۲۰۲۳.۱ یا بالاتر
فعال کردن پیشپردازنده ساخت Gradle
پیشپردازنده ساخت Gradle بهطور پیشفرض در Unity Editor نسخه 2021.3.41f1 و جدیدتر فعال است. پردازنده بهطور خودکار همه تنظیمات لازم Gradle و پخشکننده را برای پشتیبانی از جدیدترین Google Mobile Ads Unity Plugin در نسخههای قبلی Unity Editor اعمال میکند.
پیکربندی دستی تنظیمات 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
پیشپردازنده ساخت Gradle بهطور پیشفرض در Unity Editor نسخه 2021.3.41f1 و جدیدتر فعال است. پردازنده بهطور خودکار همه تنظیمات لازم Gradle و پخشکننده را برای پشتیبانی از جدیدترین Google Mobile Ads Unity Plugin در نسخههای قبلی Unity Editor اعمال میکند.
پیکربندی دستی تنظیمات 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 یا بالاتر تنظیم کنید.
افزودن فهرست استثناهای 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>
2019.4 - 2021.3.37f1
پیشنیازها
قبلاز ادامه دادن، مطمئن شوید موارد زیر را دارید:
- جدیدترین نسخه پایدار Android Studio را بارگیری و نصب کنید.
- اختیاری: برای جزئیات مربوط به ساختن برای Android، به نسخههای Java در ساختهای Android مراجعه کنید
فعال کردن الگوهای Gradle سفارشی
به تنظیمات پروژه > پخشکننده > Android > تنظیمات انتشار > ساخت بروید
و Custom Main Gradle Template و Custom Gradle Properties Template را فعال کنید.
تنظیم سطح میانای برنامهسازی کاربردی هدف
از منو اصلی، Edit > Project Settings > Player > Android > Other Settings را باز کنید و Target API Level را روی API Level 35 یا بالاتر تنظیم کنید.
صادر کردن به «استودیو Android»
تنظیمات ساخت Android را با انتخاب File (یا Unity Editor در MacOS) > Build Settings اصلاح کنید و Export Project را علامت بزنید:
اگر هشداری دریافت کردید مبنی بر اینکه سطح ۳۵ میانای برنامهسازی کاربردی پلاتفرم کیت توسعه نرمافزار Android وجود ندارد، گزینه «بهروزرسانی کیت توسعه نرمافزار Android» را انتخاب کنید.
باز کردن «استودیو Android»
این بخش حاوی مراحلی است که در «استودیو Android» انجام میشود.
بهروزرسانی پیکربندی 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 را با پشتیبانی 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
- مشخصه
namespaceرا بااستفاده از مقدار مشخصهpackageازlauncher/AndroidManifest.xmlتنظیم کنید - تنظیم
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»، همگامسازی gradle را اجرا کنید، و پروژه را اجرا کنید.