Unity Editor จะล็อกเวอร์ชันไว้กับ Gradle เวอร์ชันหนึ่งๆ Unity Editor เวอร์ชันก่อนหน้าใช้ Gradle เวอร์ชันก่อนหน้าซึ่งไม่สามารถใช้งานร่วมกับ Google Mobile Ads เวอร์ชันล่าสุดได้
หากต้องการสร้าง Android ให้เลือกเวอร์ชัน Unity Editor ที่ต้องการ
2023.1 ขึ้นไป
เปิดใช้โปรแกรมประมวลผลภายหลังการสร้าง Gradle
เปิดใช้โปรแกรมประมวลผลภายหลังการบิลด์ Gradle โดยค่าเริ่มต้นใน Unity Editor 2021.3.41f1 ขึ้นไป ตัวประมวลผลจะใช้การตั้งค่า Gradle และการตั้งค่าเพลเยอร์ที่จำเป็นทั้งหมดโดยอัตโนมัติเพื่อรองรับ Google Mobile Ads SDK เวอร์ชันล่าสุดใน Unity Editor เวอร์ชันก่อนหน้า
กำหนดค่าการตั้งค่า Android และ Gradle ด้วยตนเอง
เปิดใช้เทมเพลต Gradle ที่กำหนดเอง
ไปที่การตั้งค่าโปรเจ็กต์ > Player > Android > การตั้งค่าการเผยแพร่ > สร้าง
แล้วเปิดใช้ Custom Main Gradle Template
และ Custom Gradle Properties Template

ตั้งค่าระดับ API เป้าหมายเป็น 34
จากเมนูหลัก ให้เปิดแก้ไข > การตั้งค่าโปรเจ็กต์ > เพลเยอร์ > Android > การตั้งค่าอื่นๆ แล้วตั้งค่าระดับ API เป้าหมายเป็นระดับ API 34 ขึ้นไป

2021.3.41f1 - 2022.3
เปิดใช้โปรแกรมประมวลผลภายหลังการสร้าง Gradle
เปิดใช้โปรแกรมประมวลผลภายหลังการบิลด์ Gradle โดยค่าเริ่มต้นใน Unity Editor 2021.3.41f1 ขึ้นไป ตัวประมวลผลจะใช้การตั้งค่า Gradle และการตั้งค่าเพลเยอร์ที่จำเป็นทั้งหมดโดยอัตโนมัติเพื่อรองรับ Google Mobile Ads SDK เวอร์ชันล่าสุดใน Unity Editor เวอร์ชันก่อนหน้า
กำหนดค่าการตั้งค่า Android และ Gradle ด้วยตนเอง
เปิดใช้เทมเพลต Gradle ที่กำหนดเอง
ไปที่การตั้งค่าโปรเจ็กต์ > Player > Android > การตั้งค่าการเผยแพร่ > สร้าง
แล้วเปิดใช้ Custom Main Gradle Template
และ Custom Gradle Properties Template

ตั้งค่าระดับ API เป้าหมายเป็น 34
จากเมนูหลัก ให้เปิดแก้ไข > การตั้งค่าโปรเจ็กต์ > เพลเยอร์ > Android > การตั้งค่าอื่นๆ แล้วตั้งค่าระดับ API เป้าหมายเป็นระดับ 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 ที่กำหนดเอง
ไปที่การตั้งค่าโปรเจ็กต์ > Player > Android > การตั้งค่าการเผยแพร่ > สร้าง
แล้วเปิดใช้ Custom Main Gradle Template
และ Custom Gradle Properties Template

ตั้งค่าระดับ API เป้าหมายเป็น 34
จากเมนูหลัก ให้เปิดแก้ไข > การตั้งค่าโปรเจ็กต์ > เพลเยอร์ > Android > การตั้งค่าอื่นๆ แล้วตั้งค่าระดับ API เป้าหมายเป็นระดับ API 34 ขึ้นไป

ส่งออกไปยัง Android Studio
แก้ไขการตั้งค่าการสร้าง Android โดยเลือกไฟล์ (หรือ Unity Editor ใน MacOS) > การตั้งค่าการสร้าง แล้วเลือกช่องทำเครื่องหมาย "ส่งออกโปรเจ็กต์"

หากได้รับคำเตือนว่าไม่มี Android SDK Platform API ระดับ 34 ให้เลือกตัวเลือก "อัปเดต Android SDK"
เปิด Android Studio
ส่วนนี้มีขั้นตอนที่ดำเนินการภายใน Android Studio
อัปเดตการกำหนดค่า JDK ของ Gradle
เปิดการตั้งค่า Gradle จากไฟล์ (หรือ Android Studio ใน MacOS) > การตั้งค่า > สร้าง > การดำเนินการ > การติดตั้งใช้งาน > เครื่องมือบิลด์ > Gradle ค้นหาเมนูแบบเลื่อนลง Gradle JDK แล้วตั้งค่า Gradle JDK ให้ใช้ JDK 17 ขึ้นไป

หากไม่ได้ติดตั้ง JDK 17 ให้เลือกตัวเลือกดาวน์โหลด JDK จากแถบเมนู Gradle JDK แล้วดาวน์โหลดเวอร์ชันที่เข้ากันได้ เราขอแนะนำผู้ให้บริการ JetBrains runtime ที่รองรับ 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 แล้วเรียกใช้โปรเจ็กต์