גרסת Unity Editor נעולה לגרסה ספציפית של Gradle. גרסאות קודמות של Unity Editor משתמשות בגרסאות קודמות של Gradle שלא תואמות לגרסה העדכנית של Google Mobile Ads.
כדי ליצור Android, בוחרים את הגרסה המועדפת של Unity Editor:
גרסה 2023.1 ואילך
הפעלת מעבד פוסט לבניית Gradle
מעבד הפוסט של Gradle build מופעל כברירת מחדל ב-Unity Editor מגרסה 2021.3.41f1 ואילך. המעבד מחיל באופן אוטומטי את כל ההגדרות הנדרשות של Gradle ושל הנגן כדי לתמוך בגרסאות קודמות של Unity Editor עם Google Mobile Ads SDK העדכני.
הגדרה ידנית של הגדרות Android ו-Gradle
הפעלת תבניות Gradle בהתאמה אישית
עוברים אל Project Settings > Player > Android > Publishing Settings > Build
ומפעילים את Custom Main Gradle Template
ואת Custom Gradle Properties Template
.

הגדרת רמת ה-API לטירגוט 34
בתפריט הראשי, פותחים את האפשרות Edit > Project Settings > Player > Android > Other Settings (עריכה > הגדרות הפרויקט > Player > Android > הגדרות אחרות) ומגדירים את Target API Level (רמת ה-API לטירגוט) לערך API Level 34 (רמת API 34) או לערך גבוה יותר.

2021.3.41f1 עד 2022.3
הפעלת מעבד פוסט לבניית Gradle
מעבד הפוסט של Gradle build מופעל כברירת מחדל ב-Unity Editor מגרסה 2021.3.41f1 ואילך. המעבד מחיל באופן אוטומטי את כל ההגדרות הנדרשות של Gradle ושל הנגן כדי לתמוך בגרסאות קודמות של Unity Editor עם Google Mobile Ads SDK העדכני.
הגדרה ידנית של הגדרות Android ו-Gradle
הפעלת תבניות Gradle בהתאמה אישית
עוברים אל Project Settings > Player > Android > Publishing Settings > Build
ומפעילים את Custom Main Gradle Template
ואת Custom Gradle Properties Template
.

הגדרת רמת ה-API לטירגוט 34
בתפריט הראשי, פותחים את האפשרות Edit > Project Settings > Player > Android > Other Settings (עריכה > הגדרות הפרויקט > Player > Android > הגדרות אחרות) ומגדירים את Target API Level (רמת ה-API לטירגוט) לערך API Level 34 (רמת API 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>
2019.4 עד 2021.3.37f1
דרישות מוקדמות
לפני שממשיכים, חשוב לוודא שיש לכם:
- מורידים ומתקינים את הגרסה היציבה האחרונה של Android Studio.
- אופציונלי: לפרטים על בנייה ל-Android, אפשר לעיין במאמר בנושא גרסאות Java בגרסאות Android
הפעלת תבניות Gradle בהתאמה אישית
עוברים אל Project Settings > Player > Android > Publishing Settings > Build
ומפעילים את Custom Main Gradle Template
ואת Custom Gradle Properties Template
.

הגדרת רמת ה-API לטירגוט 34
בתפריט הראשי, פותחים את האפשרות Edit > Project Settings > Player > Android > Other Settings (עריכה > הגדרות הפרויקט > Player > Android > הגדרות אחרות) ומגדירים את Target API Level (רמת ה-API לטירגוט) לערך API Level 34 (רמת API 34) או לערך גבוה יותר.

ייצוא אל Android Studio
משנים את הגדרות ה-Build של Android על ידי בחירה באפשרות File (קובץ) (או Unity Editor ב-MacOS) > Build Settings (הגדרות ה-Build) וסימון האפשרות Export Project (ייצוא הפרויקט):

אם מוצגת אזהרה על כך שחסר Android SDK platform API ברמה 34, בוחרים באפשרות 'עדכון Android SDK'.
פתיחת Android Studio
בקטע הזה מפורטים השלבים לביצוע ב-Android Studio.
עדכון ההגדרה של Gradle JDK
פותחים את ההגדרות של Gradle דרך File (או Android Studio ב-MacOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle. מאתרים את התפריט הנפתח Gradle JDK ומגדירים את Gradle JDK לשימוש ב-JDK 17 ואילך.

אם לא מותקנת אצלכם JDK 17, בוחרים באפשרות Download 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 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 } }
הפעלת פרויקט Android
מ-Android Studio, מריצים סנכרון של Gradle ומריצים את הפרויקט.