Unity Editor dikunci versinya ke versi Gradle tertentu. Versi Unity Editor yang lebih lama menggunakan versi Gradle yang lebih lama dan tidak kompatibel dengan Google Mobile Ads versi terbaru.
Untuk mem-build Android, pilih versi Unity Editor yang Anda inginkan:
2023.1 atau yang lebih tinggi
Mengaktifkan pra-pemroses build Gradle
Pra-pemroses build Gradle diaktifkan secara default di Unity Editor 2021.3.41f1 dan yang lebih baru. Pemroses secara otomatis menerapkan semua setelan Gradle dan pemutar yang diperlukan untuk mendukung Google Mobile Ads Unity Plugin terbaru di versi Unity Editor yang lebih lama.
Mengonfigurasi setelan Android dan Gradle secara manual
Mengaktifkan Template Gradle Kustom
Buka Project Settings > Player > Android > Publishing Settings > Build
, lalu aktifkan Custom Main Gradle Template dan Custom Gradle Properties Template.
Menetapkan Level API Target
Dari menu utama, buka Edit > Project Settings > Player > Android > Other Settings , lalu tetapkan Target API Level ke API Level 23 atau yang lebih tinggi.
2021.3.41f1 - 2022.3
Mengaktifkan pra-pemroses build Gradle
Pra-pemroses build Gradle diaktifkan secara default di Unity Editor 2021.3.41f1 dan yang lebih baru. Pemroses secara otomatis menerapkan semua setelan Gradle dan pemutar yang diperlukan untuk mendukung Google Mobile Ads Unity Plugin terbaru di versi Unity Editor yang lebih lama.
Mengonfigurasi setelan Android dan Gradle secara manual
Mengaktifkan Template Gradle Kustom
Buka Project Settings > Player > Android > Publishing Settings > Build
, lalu aktifkan Custom Main Gradle Template dan Custom Gradle Properties Template.
Menetapkan Level API Target
Dari menu utama, buka Edit > Project Settings > Player > Android > Other Settings , lalu tetapkan Target API Level ke API Level 23 atau yang lebih tinggi.
Menambahkan daftar abaikan jetifier ke `gradleTemplate.properties`
Edit Assets/Plugins/Android/gradleTemplate.properties, lalu tambahkan baris berikut:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
Menghapus `minSDKVersion` dari `AndroidManifest.xml`
Edit Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml, lalu hapus android:minSdkVersion="21" dari node uses-sdk .
AndroidManifest.xml Anda akan terlihat seperti berikut:
<?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
Prasyarat
Sebelum melanjutkan, pastikan Anda memiliki hal berikut:
- Opsional: Untuk mengetahui detail tentang cara mem-build untuk Android, lihat Versi Java dalam build Android
Mengaktifkan Template Gradle Kustom
Buka Project Settings > Player > Android > Publishing Settings > Build
, lalu aktifkan Custom Main Gradle Template dan Custom Gradle Properties Template.
Menetapkan Level API Target
Dari menu utama, buka Edit > Project Settings > Player > Android > Other Settings , lalu tetapkan Target API Level ke API Level 35 atau yang lebih tinggi.
Mengekspor ke Android Studio
Ubah setelan build Android dengan memilih File (atau Unity Editor di MacOS) > Build Settings , lalu centang Export Project:
Jika Anda menerima peringatan bahwa platform Android SDK level API 35 tidak ada, pilih opsi 'Update Android SDK'.
Membuka Android Studio
Bagian ini berisi langkah-langkah yang dilakukan dalam Android Studio.
Mengupdate konfigurasi JDK Gradle
Buka setelan Gradle dari File (atau Android Studio di MacOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle. Temukan menu drop-down Gradle JDK , lalu tetapkan Gradle JDK untuk menggunakan JDK 17 atau yang lebih baru.
Jika Anda belum menginstal JDK 17, pilih opsi Download JDK dari menu Gradle JDK, lalu download versi yang kompatibel. Sebaiknya gunakan vendor runtime JetBrains dengan dukungan aarch64, agar sesuai dengan yang didistribusikan Android Studio.
Mengupdate build.gradle level project
Tetapkan versi alat Gradle ke 8.1.1 atau yang lebih baru.
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 }
Mengupdate /gradle/gradle-wrapper.properties
Tetapkan distributionUrl untuk menggunakan Gradle 8.1.1 atau yang lebih baru.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
Mengupdate launcher/build.gradle
- Tetapkan atribut
namespacemenggunakan nilai atributpackagedarilauncher/AndroidManifest.xml - Tetapkan
sourceCompatibilitydantargetCompatibilityke 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'
Mengupdate settings.gradle level project
Tetapkan bagian pluginManagement dan 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" } } }
Mengupdate unityLibrary/build.gradle
- Tetapkan
namespacedengan nilai"com.unity3d.player" - Tetapkan
sourceCompatibilitydantargetCompatibilitykeJavaVersion.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' }
Mengupdate unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle
Tetapkan atribut namespace dengan nilai "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 } }
Menjalankan Project Android
Dari Android Studio, jalankan sinkronisasi gradle, dan jalankan project.