גרסת Unity Editor נעולה לגרסה ספציפית של Gradle, שעשויה להתנגש עם יחסי התלות הנדרשים לחבילות Android חדשות יותר, כמו Google Mobile Ads. במדריך הבא מוסבר איך ליצור גרסה מבוססת build ל-Android בגרסאות קודמות של Unity Editor.
בטבלה הבאה מפורטת הגרסה המומלצת של הפלאגין של 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 |
דרישות מוקדמות
- מורידים ומתקינים את הגרסה היציבה האחרונה של Android Studio.
- כדי להבין טוב יותר את תהליך ה-build ל-Android, כדאי לקרוא את המאמר גרסאות Java ב-builds ל-Android.
עדכון הגדרות ה-build בגרסה 2022.3 ובגרסאות קודמות
ב-Unity 2022.3 וגרסאות קודמות, צריך לשנות את הגדרות ה-build לפני הייצוא ל-Android Studio.
יצירת הקובץ baseProjectTemplate.gradle
הפעלת תבניות Gradle בהתאמה אישית. עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > Android (Android) > Publishing Settings (הגדרות פרסום) > Build (פיתוח) ובוחרים באפשרות Custom Base Gradle Template. הפעולה הזו יוצרת את הקובץ
Plugins/Android/baseProjectTemplate.gradle
.משנים את הקובץ
Plugins/Android/baseProjectTemplate.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 }
שינויים נוספים בגרסה Unity 2021.3.37f1 וגרסאות קודמות
ב-Unity בגרסה 2021.3.37f1 וגרסאות קודמות, נדרשים שינויים נוספים כדי לשדרג את התאימות ל-Gradle 8.1.1. מבצעים את השלבים הבאים:
יצירת launcherTemplate.gradle
עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > Android (Android) > Publishing Settings (הגדרות פרסום) > Build, ובוחרים באפשרות Launcher Gradle Template. הפעולה הזו יוצרת את הקובץ
Plugins/Android/launcherTemplate.gradle
.משנים את
Plugins/Android/launcherTemplate.gradle
כך שיכלול את מאפיין מרחב השמות. ערך המאפיין של מרחב השמות צריך להיות זהה לערך של מאפיין החבילה שנמצא בקובץAndroidManifest.xml
של מודול מרכז האפליקציות.android { // TODO: Replace with your app's package name. namespace 'com.google.android.gms.example' }
יצירת mainTemplate.gradle
- עוברים אל Project Settings (הגדרות הפרויקט) > Player (נגן) > Android (Android) > Publishing Settings (הגדרות פרסום) > Build ובוחרים באפשרות Main Gradle Template. הפקודה הזו יוצרת את הקובץ
Plugins/Android/mainTemplate.gradle
.
.
משנים את
Plugins/Android/mainTemplate.gradle
כך שיכלול את מאפיין מרחב השמות עם הערךcom.unity3d.player
.android { namespace 'com.unity3d.player' }
ייצוא ל-Android Studio
משנים את הגדרות ה-build ל-Android כדי לייצא את פרויקט Unity.
כדי לייצא ל-Android Studio, משנים את הגדרות ה-build של Android. בוחרים באפשרות File (או Unity Editor ב-macOS) > Build Settings ומסמנים את האפשרות Export Project:
לוחצים על הלחצן ייצוא בתחתית תיבת הדו-שיח Build Settings (הגדרות build). מערכת Unity יוצרת פרויקט Android במיקום שנבחר.
פותחים את הפרויקט שיוצאו ב-Android Studio.
עדכון ההגדרה של Gradle JDK לשימוש ב-JDK 17
- פותחים את הגדרות Gradle ב-Android Studio בקטע File (או Android Studio ב-macOS) > Settings > Build, Execution, Deployment > Build Tools > Gradle.
מחפשים את התפריט הנפתח Gradle JDK. משנים את Gradle JDK כך שישתמש ב-JDK 17.
אם JDK 17 לא מותקן, בוחרים באפשרות Download JDK בתפריט הנפתח של Gradle JDK ומורידים גרסה תואמת. אנחנו ממליצים על הספק של זמן הריצה של JetBrains עם תמיכה ב-
arch64
, כדי להתאים למה ש-Android Studio מפיץ.
עדכון קובצי ה-wrapper של Gradle
משנים את הפרמטר distributionUrl ב-gradle/wrapper/gradle-wrapper.properties
כדי להשתמש ב-Gradle מגרסה 8.0.1 ואילך.
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip
שינויים נוספים ב-Android Studio לגרסה 2021.3.37f1 וגרסאות קודמות של Unity
ב-Unity 2021.3.37f1 וגרסאות קודמות, נדרשים שינויים נוספים כדי לשדרג את התאימות ל-Gradle 8.1.1. מבצעים את השלבים הבאים:
משנים את המאפיין
gradle.properties
ומסירים את המאפייןandroid.enableR8=false
.משנים את
unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle
ומוסיפים מאפיין מרחב שמות עם הערך"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 35 buildToolsVersion '30.0.3' defaultConfig { targetSdkVersion 31 } lintOptions { abortOnError false } }
הפעלת הפרויקט ל-Android
אחרי השלמת השלבים האלה, אפליקציית Unity מוכנה. ב-Android Studio, מריצים את gradle sync ומריצים את הפרויקט.