Unity Editor, belirli bir Gradle sürümüne kilitlenmiştir. Unity Editor'ın önceki sürümlerinde, Google Mobile Ads'in en son sürümüyle uyumlu olmayan Gradle'ın önceki sürümleri kullanılır.
Android'i oluşturmak için tercih ettiğiniz Unity Editor sürümünü seçin:
2023.1 veya sonraki sürümler
Gradle derleme ön işlemcisini etkinleştirme
Gradle derleme ön işlemcisi, Unity Editor 2021.3.41f1 ve sonraki sürümlerde varsayılan olarak etkindir. İşlemci, Unity Editor'ın önceki sürümlerinde en yeni Google Mobil Reklamlar Unity eklentisini desteklemek için gerekli tüm Gradle ve oynatıcı ayarlarını otomatik olarak uygular.
Android ve Gradle ayarlarını manuel olarak yapılandırma
Özel Gradle Şablonlarını Etkinleştirme
Project Settings > Player > Android > Publishing Settings > Build'e (Proje Ayarları > Oyuncu > Android > Yayınlama Ayarları > Derleme) gidin
ve Custom Main Gradle Template ile Custom Gradle Properties Template'ü etkinleştirin.
Hedef API düzeyi 34'ü ayarlama
Ana menüden Düzenle > Proje Ayarları > Oynatıcı > Android > Diğer Ayarlar'ı açın ve Hedef API Seviyesi'ni API Seviyesi 34 veya daha yüksek bir seviyeye ayarlayın.
2021.3.41f1 - 2022.3
Gradle derleme ön işlemcisini etkinleştirme
Gradle derleme ön işlemcisi, Unity Editor 2021.3.41f1 ve sonraki sürümlerde varsayılan olarak etkindir. İşlemci, Unity Editor'ın önceki sürümlerinde en yeni Google Mobil Reklamlar Unity eklentisini desteklemek için gerekli tüm Gradle ve oynatıcı ayarlarını otomatik olarak uygular.
Android ve Gradle ayarlarını manuel olarak yapılandırma
Özel Gradle Şablonlarını Etkinleştirme
Project Settings > Player > Android > Publishing Settings > Build'e (Proje Ayarları > Oyuncu > Android > Yayınlama Ayarları > Derleme) gidin
ve Custom Main Gradle Template ile Custom Gradle Properties Template'ü etkinleştirin.
Hedef API düzeyi 34'ü ayarlama
Ana menüden Düzenle > Proje Ayarları > Oynatıcı > Android > Diğer Ayarlar'ı açın ve Hedef API Seviyesi'ni API Seviyesi 34 veya daha yüksek bir seviyeye ayarlayın.
`gradleTemplate.properties` dosyasına Jetifier yoksayılanlar listesini ekleyin.
Assets/Plugins/Android/gradleTemplate.properties dosyasını düzenleyin
ve aşağıdaki satırı ekleyin:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
`AndroidManifest.xml` dosyasından `minSDKVersion` öğesini kaldırın.
Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml öğesini düzenleyin
ve uses-sdk düğümünden android:minSdkVersion="21" öğesini kaldırın.
AndroidManifest.xml öğeniz aşağıdaki gibi görünmelidir:
<?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
Ön koşullar
Devam etmeden önce aşağıdakilere sahip olduğunuzdan emin olun:
- Android Studio'nun en son kararlı sürümünü indirip yükleyin.
- İsteğe bağlı: Android için derleme hakkında ayrıntılı bilgi edinmek istiyorsanız Android derlemelerindeki Java sürümleri başlıklı makaleyi inceleyin.
Özel Gradle Şablonlarını Etkinleştirme
Project Settings > Player > Android > Publishing Settings > Build'e (Proje Ayarları > Oyuncu > Android > Yayınlama Ayarları > Derleme) gidin
ve Custom Main Gradle Template ile Custom Gradle Properties Template'ü etkinleştirin.
Hedef API düzeyi 34'ü ayarlama
Ana menüden Düzenle > Proje Ayarları > Oynatıcı > Android > Diğer Ayarlar'ı açın ve Hedef API Seviyesi'ni API Seviyesi 34 veya daha yüksek bir seviyeye ayarlayın.
Android Studio'ya aktarma
File (veya MacOS'te Unity Editor) > Build Settings'i seçerek Android derleme ayarlarını değiştirin ve Export Project'i işaretleyin:
Android SDK platform API düzeyi 34'ün eksik olduğuna dair bir uyarı alırsanız "Android SDK'yı güncelle" seçeneğini belirleyin.
Android Studio'yu açın.
Bu bölümde, Android Studio'da gerçekleştirilen adımlar yer almaktadır.
Gradle JDK yapılandırmasını güncelleme
Gradle ayarlarını File (veya MacOS'te Android Studio) > Settings > Build > Execution > Deployment > Build Tools > Gradle'dan açın. Gradle JDK açılır listesini bulun ve Gradle JDK'yı JDK 17 veya sonraki sürümleri kullanacak şekilde ayarlayın.
JDK 17 yüklü değilse Gradle JDK menü çubuğundan Download JDK (JDK'yı indir) seçeneğini belirleyip uyumlu bir sürümü indirin. Android Studio'nun dağıttığıyla eşleşmesi için aarch64 desteği olan JetBrains çalışma zamanı tedarikçisini öneririz.
Proje düzeyindeki build.gradle dosyasını güncelleyin.
Gradle araçları sürümünü 8.1.1 veya daha yeni bir sürüme ayarlayı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 }
/gradle/gradle-wrapper.properties adresini güncelleyin
Gradle 8.1.1 veya daha yeni bir sürümü kullanmak için distributionUrl öğesini ayarlayın.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
launcher/build.gradle adresini güncelleyin
namespaceözelliğini,launcher/AndroidManifest.xmliçindekipackageözelliğinin değerini kullanarak ayarlayın.sourceCompatibilityvetargetCompatibilityöğelerini Java 17 olarak ayarlayın.
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'
Proje düzeyindeki settings.gradle ayarlarını güncelleme
pluginManagement ve dependencyResolutionManagement bölümlerini ayarlayın.
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 dosyasını güncelleme
namespacedeğerini"com.unity3d.player"olarak ayarlayın.sourceCompatibilityvetargetCompatibilitydeğerleriniJavaVersion.VERSION_17olarak ayarlayın.
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 dosyasını güncelleyin.
namespace özelliğini "com.google.unity.ads" değeriyle ayarlayın.
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 projesini çalıştırma
Android Studio'da gradle senkronizasyonunu çalıştırın ve projeyi çalıştırın.