Trình chỉnh sửa Unity bị khoá phiên bản đối với một phiên bản cụ thể của Gradle. Các phiên bản cũ hơn của Trình chỉnh sửa Unity sử dụng các phiên bản cũ hơn của Gradle. Các phiên bản này không tương thích với phiên bản mới nhất của Quảng cáo trên thiết bị di động của Google.
Để tạo Android, hãy chọn phiên bản Trình chỉnh sửa Unity mà bạn muốn:
2023.1 trở lên
Bật trình tiền xử lý bản dựng Gradle
Trình tiền xử lý bản dựng Gradle được bật theo mặc định trong Trình chỉnh sửa Unity 2021.3.41f1 trở lên. Trình xử lý này tự động áp dụng tất cả các chế độ cài đặt cần thiết cho Gradle và trình phát để hỗ trợ phiên bản mới nhất Google Mobile Ads Unity Plugin trên các phiên bản cũ hơn của Trình chỉnh sửa Unity.
Định cấu hình chế độ cài đặt Android và Gradle theo cách thủ công
Bật Mẫu Gradle tuỳ chỉnh
Chuyển đến Project Settings > Player > Android > Publishing Settings > Build
(Cài đặt dự án > Trình phát > Android > Cài đặt phát hành > Bản dựng) rồi bật Custom Main Gradle Template (Mẫu Gradle chính tuỳ chỉnh) và Custom Gradle Properties Template (Mẫu thuộc tính Gradle tuỳ chỉnh).
Đặt Cấp độ API mục tiêu
Trên trình đơn chính, hãy mở Edit > Project Settings > Player > Android > Other Settings (Chỉnh sửa > Cài đặt dự án > Trình phát > Android > Cài đặt khác) rồi đặt Target API Level (Cấp độ API mục tiêu) thành API Level 23 (Cấp độ API 23) trở lên.
2021.3.41f1 – 2022.3
Bật trình tiền xử lý bản dựng Gradle
Trình tiền xử lý bản dựng Gradle được bật theo mặc định trong Trình chỉnh sửa Unity 2021.3.41f1 trở lên. Trình xử lý này tự động áp dụng tất cả các chế độ cài đặt cần thiết cho Gradle và trình phát để hỗ trợ phiên bản mới nhất Google Mobile Ads Unity Plugin trên các phiên bản cũ hơn của Trình chỉnh sửa Unity.
Định cấu hình chế độ cài đặt Android và Gradle theo cách thủ công
Bật Mẫu Gradle tuỳ chỉnh
Chuyển đến Project Settings > Player > Android > Publishing Settings > Build
(Cài đặt dự án > Trình phát > Android > Cài đặt phát hành > Bản dựng) rồi bật Custom Main Gradle Template (Mẫu Gradle chính tuỳ chỉnh) và Custom Gradle Properties Template (Mẫu thuộc tính Gradle tuỳ chỉnh).
Đặt Cấp độ API mục tiêu
Trên trình đơn chính, hãy mở Edit > Project Settings > Player > Android > Other Settings (Chỉnh sửa > Cài đặt dự án > Trình phát > Android > Cài đặt khác) rồi đặt Target API Level (Cấp độ API mục tiêu) thành API Level 23 (Cấp độ API 23) trở lên.
Thêm danh sách bỏ qua jetifier vào `gradleTemplate.properties`
Chỉnh sửa Assets/Plugins/Android/gradleTemplate.properties và thêm dòng sau:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
Xoá `minSDKVersion` khỏi `AndroidManifest.xml`
Chỉnh sửa Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml và xoá android:minSdkVersion="21" khỏi nút uses-sdk .
AndroidManifest.xml của bạn sẽ có dạng như sau:
<?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
Điều kiện tiên quyết
Trước khi tiếp tục, hãy đảm bảo bạn có những điều sau:
- Tải xuống và cài đặt phiên bản ổn định mới nhất của Android Studio.
- Không bắt buộc: Để biết thông tin chi tiết về cách tạo cho Android, hãy xem bài viết Phiên bản Java trong bản dựng Android
Bật Mẫu Gradle tuỳ chỉnh
Chuyển đến Project Settings > Player > Android > Publishing Settings > Build
(Cài đặt dự án > Trình phát > Android > Cài đặt phát hành > Bản dựng) rồi bật Custom Main Gradle Template (Mẫu Gradle chính tuỳ chỉnh) và Custom Gradle Properties Template (Mẫu thuộc tính Gradle tuỳ chỉnh).
Đặt Cấp độ API mục tiêu
Trên trình đơn chính, hãy mở Edit > Project Settings > Player > Android > Other Settings (Chỉnh sửa > Cài đặt dự án > Trình phát > Android > Cài đặt khác) rồi đặt Target API Level (Cấp độ API mục tiêu) thành API Level 35 (Cấp độ API 35) trở lên.
Xuất sang Android Studio
Sửa đổi chế độ cài đặt bản dựng Android bằng cách chọn File (Tệp) (hoặc Trình chỉnh sửa Unity trên MacOS) > Build Settings (Cài đặt bản dựng) rồi đánh dấu vào Export Project (Xuất dự án):
Nếu bạn nhận được cảnh báo rằng thiếu API cấp 35 của nền tảng SDK Android, hãy chọn tuỳ chọn 'Update Android SDK' (Cập nhật SDK Android).
Mở Android Studio
Phần này chứa các bước được thực hiện trong Android Studio.
Cập nhật cấu hình JDK của Gradle
Mở chế độ cài đặt Gradle từ File (Tệp) (hoặc Android Studio trên MacOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle (Cài đặt > Bản dựng > Thực thi > Triển khai > Công cụ bản dựng > Gradle). Tìm trình đơn thả xuống Gradle JDK rồi đặt Gradle JDK để sử dụng JDK 17 trở lên.
Nếu bạn chưa cài đặt JDK 17, hãy chọn các tuỳ chọn Download JDK (Tải JDK xuống) trên thanh trình đơn Gradle JDK rồi tải xuống một phiên bản tương thích. Bạn nên sử dụng nhà cung cấp thời gian chạy JetBrains có hỗ trợ aarch64 để khớp với những gì Android Studio phân phối.
Cập nhật build.gradle cấp dự án
Đặt phiên bản công cụ Gradle thành 8.1.1 trở lên.
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 }
Cập nhật /gradle/gradle-wrapper.properties
Đặt distributionUrl để sử dụng Gradle 8.1.1 trở lên.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
Cập nhật launcher/build.gradle
- Đặt thuộc tính
namespacebằng giá trị của thuộc tínhpackagetừlauncher/AndroidManifest.xml - Đặt
sourceCompatibilityvàtargetCompatibilitythành 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'
Cập nhật settings.gradle cấp dự án
Đặt các phần pluginManagement và 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" } } }
Cập nhật unityLibrary/build.gradle
- Đặt
namespacebằng giá trị"com.unity3d.player" - Đặt
sourceCompatibilityvàtargetCompatibilitythànhJavaVersion.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' }
Cập nhật unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle
Đặt thuộc tính namespace bằng giá trị "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 } }
Chạy dự án Android
Trong Android Studio, hãy chạy đồng bộ hoá gradle rồi chạy dự án.