Unity Editor, Gradle'ın belirli bir sürümüne kilitlenmiştir. Unity Editor'ın önceki sürümleri, Google Mobil Reklamlar'ın en yeni sürümüyle uyumlu olmayan Gradle'ın önceki sürümlerini kullanır.
Android'i derlemek için tercih ettiğiniz Unity Editor sürümünü seçin:
2023.1 veya daha yeni sürüm
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 son Google Mobile Ads Unity Plugin sürümünü 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ı > Oynatıcı > Android > Yayınlama Ayarları > Derleme) gidin ve Custom Main Gradle Template ile Custom Gradle Properties Template'yi etkinleştirin.
Hedef API düzeyini ayarlama
Ana menüden Edit > Project Settings > Player > Android > Other Settings'i (Düzenle > Proje Ayarları > Oynatıcı > Android > Diğer Ayarlar) açın ve Target API Level'ı (Hedef API Düzeyi) API Level 24 (API Düzeyi 24) veya daha yüksek bir değere 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 son Google Mobile Ads Unity Plugin sürümünü 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ı > Oynatıcı > Android > Yayınlama Ayarları > Derleme) gidin ve Custom Main Gradle Template ile Custom Gradle Properties Template'yi etkinleştirin.
Hedef API düzeyini ayarlama
Ana menüden Edit > Project Settings > Player > Android > Other Settings'i (Düzenle > Proje Ayarları > Oynatıcı > Android > Diğer Ayarlar) açın ve Target API Level'ı (Hedef API Düzeyi) API Level 24 (API Düzeyi 24) veya daha yüksek bir değere ayarlayın.
Jetifier yoksayılanlar listesini `gradleTemplate.properties` dosyasına ekleme
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
`minSDKVersion` öğesini `AndroidManifest.xml` dosyasından 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 sayfanız 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ı > Oynatıcı > Android > Yayınlama Ayarları > Derleme) gidin ve Custom Main Gradle Template ile Custom Gradle Properties Template'yi etkinleştirin.
Hedef API düzeyini ayarlama
Ana menüden Edit > Project Settings > Player > Android > Other Settings'i (Düzenle > Proje Ayarları > Oynatıcı > Android > Diğer Ayarlar) açın ve Target API Level'ı (Hedef API Düzeyi) API Level 35 (API Düzeyi 35) veya daha yüksek bir değere ayarlayın.
Android Studio'ya aktarma
File (veya MacOS'ta Unity Editor) > Build Settings'i seçerek Android derleme ayarlarını değiştirin ve Export Project'i işaretleyin:
Android SDK platformu API düzeyi 35'in 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 alır.
Gradle JDK yapılandırmasını güncelleme
File (veya macOS'te Android Studio) > Settings > Build > Execution > Deployment > Build Tools > Gradle'a giderek Gradle ayarlarını açın. Gradle JDK açılır menüsünü bulun ve Gradle JDK'yi JDK 17 veya sonraki bir sürümü kullanacak şekilde ayarlayın.
JDK 17 yüklü değilse Gradle JDK menü çubuğundan Download JDK (JDK'yi indir) seçeneklerini belirleyin ve uyumlu bir sürüm indirin. Android Studio'nun dağıttığı sürüme uyması için aarch64 destekli JetBrains çalışma zamanı tedarikçisini kullanmanızı öneririz.
Proje düzeyindeki build.gradle dosyasını güncelleme
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
distributionUrl ayarını Gradle 8.1.1 veya daha yeni bir sürümü kullanacak şekilde yapılandırın.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
launcher/build.gradle adresini güncelleyin
launcher/AndroidManifest.xmlkaynağındakipackageözelliğinin değerini kullanaraknamespaceözelliğini ayarlayın.sourceCompatibilityvetargetCompatibilitydeğerlerini 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üzeyinde settings.gradle 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 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' }
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.