גרסת Unity Editor נעולה לגרסה ספציפית של Gradle. בגרסאות קודמות של Unity Editor נעשה שימוש בגרסאות קודמות של Gradle שלא תואמות לגרסה האחרונה של Google Mobile Ads.
בטבלה הבאה מוצגת הגרסה המקסימלית של הפלאגין של Google Mobile Ads שתואמת לשימוש, בהתאם לגרסת Unity Editor שלכם:
Unity Editor | גרסת הפלאגין של Google Mobile Ads ל-Unity |
---|---|
2023.1 ואילך | החדש ביותר |
2021.3.41f1 – 2022.3 | 9.1.0 |
2021.3.37f1 או גרסה ישנה יותר | 8.5.3 |
אפשר לעדכן את Gradle באופן ידני כדי להשתמש בפלאגין העדכני ביותר של Google Mobile Ads ל-Unity, כולל גרסאות ישנות יותר של Unity Editors. כדי ליצור גרסה ל-Android, בוחרים את גרסת Unity Editor המועדפת:
דרישות מוקדמות
לפני שממשיכים, חשוב לוודא שיש לכם את הפריטים הבאים:
- אופציונלי: פרטים על פיתוח ל-Android זמינים במאמר גרסאות Java ב-builds של Android
הפעלת תבניות Gradle בהתאמה אישית
עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > Android (Android) > Publishing Settings (הגדרות פרסום) > Build (גרסה) ומפעילים את Custom Main Gradle Template
ואת Custom Gradle Properties Template
.

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

הפעלת הפרויקט ל-Android
ב-Android Studio, מריצים את gradle sync ומריצים את הפרויקט.
דרישות מוקדמות
לפני שממשיכים, חשוב לוודא שיש לכם את הפריטים הבאים:
- מורידים ומתקינים את הגרסה היציבה האחרונה של Android Studio.
- אופציונלי: פרטים על פיתוח ל-Android זמינים במאמר גרסאות Java ב-builds של Android
הפעלת תבניות Gradle בהתאמה אישית
עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > Android (Android) > Publishing Settings (הגדרות פרסום) > Build (גרסה) ומפעילים את Custom Main Gradle Template
ואת Custom Gradle Properties Template
.

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

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

פתיחת 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
הפעלת הפרויקט ל-Android
ב-Android Studio, מריצים את gradle sync ומריצים את הפרויקט.
דרישות מוקדמות
לפני שממשיכים, חשוב לוודא שיש לכם את הפריטים הבאים:
- מורידים ומתקינים את הגרסה היציבה האחרונה של Android Studio.
- אופציונלי: פרטים על פיתוח ל-Android זמינים במאמר גרסאות Java ב-builds של Android
הפעלת תבניות Gradle בהתאמה אישית
עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > Android (Android) > Publishing Settings (הגדרות פרסום) > Build (גרסה) ומפעילים את Custom Main Gradle Template
ואת Custom Gradle Properties Template
.

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

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

אם מופיעה אזהרה על כך שחסרה גרסה 34 של Android SDK platform API, בוחרים באפשרות 'Update 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: ['.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 ומריצים את הפרויקט.