Android için Unity'yi derleme

Unity Düzenleyici, Gradle'in belirli bir sürümüne kilitlenmiştir. Unity Editor'ın önceki sürümleri, Google Mobil Reklamlar'ın en son sürümüyle uyumlu olmayan Gradle'in önceki sürümlerini kullanır.

Aşağıdaki tabloda, Unity Editor'ınıza göre kullanılabilecek maksimum uyumlu Google Mobil Reklamlar eklenti sürümü gösterilmektedir:

Unity Düzenleyici Google Mobil Reklamlar Unity eklentisi sürümü
2023.1 veya sonraki sürümler En son
2021.3.41f1 - 2022.3 9.1.0
2021.3.37f1 veya önceki sürümler 8.5.3

Gradle'ı, eski Unity Düzenleyiciler dahil en son Google Mobil Reklamlar Unity eklentisini kullanacak şekilde manuel olarak güncelleyebilirsiniz. Android'i derlemek için tercih ettiğiniz Unity Editor sürümünü seçin:

Ön koşullar

Devam etmeden önce aşağıdakilere sahip olduğunuzdan emin olun:

Özel Gradle şablonlarını etkinleştirme

Proje Ayarları > Oynatıcı > Android > Yayınlama Ayarları > Derleme'ye gidin ve Custom Main Gradle Template ile Custom Gradle Properties Template'ı etkinleştirin.

Özel Gradle şablonlarını etkinleştirme

Hedef API düzeyini 34 olarak 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 değere ayarlayın.

Hedef API düzeyini ayarlama

Android projesini çalıştırma

Android Studio'da gradle senkronizasyonunu çalıştırın ve projeyi çalıştırın.

Ön koşullar

Devam etmeden önce aşağıdakilere sahip olduğunuzdan emin olun:

Özel Gradle şablonlarını etkinleştirme

Proje Ayarları > Oynatıcı > Android > Yayınlama Ayarları > Derleme'ye gidin ve Custom Main Gradle Template ile Custom Gradle Properties Template'ı etkinleştirin.

Özel Gradle şablonlarını etkinleştirme

Hedef API düzeyini 34 olarak 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 değere ayarlayın.

Hedef API düzeyini ayarlama

Android Studio'ya aktarma

Dosya (veya MacOS'te Unity Editor) > Derleme Ayarları'nı seçip Projeyi Dışa Aktar'ı işaretleyerek Android derleme ayarlarını değiştirin:

Projeyi Dışa Aktarma

Android Studio'yu açma

Bu bölümde, Android Studio'da gerçekleştirilen adımlar yer almaktadır.

Gradle JDK yapılandırmasını güncelleme

Dosya (veya MacOS'te Android Studio) > Ayarlar > Derleme > Yürütme > Dağıtım > Derleme Araçları > Gradle bölümünden Gradle ayarlarını açın. Gradle JDK açılır menüsünü bulun ve Gradle JDK'yı JDK 17 veya sonraki bir sürümü kullanacak şekilde ayarlayın.

Gradle JDK yapılandırmasını güncelleme

JDK 17 yüklü değilse Gradle JDK menü çubuğundan JDK'yi indir seçeneklerini belirleyin ve uyumlu bir sürümü indirin. Android Studio'nun dağıttığı sürümle eşleşecek şekilde, aarch64 desteğine sahip JetBrains çalışma zamanı tedarikçisini ö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 öğelerini güncelle

distributionUrl öğesini Gradle 8.1.1 veya daha yeni bir sürümü kullanacak şekilde ayarlayın.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

Android projesini çalıştırma

Android Studio'da gradle senkronizasyonunu çalıştırın ve projeyi çalıştırın.

Ön koşullar

Devam etmeden önce aşağıdakilere sahip olduğunuzdan emin olun:

Özel Gradle şablonlarını etkinleştirme

Proje Ayarları > Oynatıcı > Android > Yayınlama Ayarları > Derleme'ye gidin ve Custom Main Gradle Template ile Custom Gradle Properties Template'ı etkinleştirin.

Özel Gradle şablonlarını etkinleştirme

Hedef API düzeyini 34 olarak 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 değere ayarlayın.

Hedef API düzeyini ayarlama

Android Studio'ya aktarma

Dosya (veya MacOS'te Unity Editor) > Derleme Ayarları'nı seçip Projeyi Dışa Aktar'ı işaretleyerek Android derleme ayarlarını değiştirin:

Projeyi Dışa Aktarma

Android SDK platform API 34 seviyesinin eksik olduğuyla ilgili bir uyarı alırsanız "Android SDK'sını güncelle" seçeneğini belirleyin.

Android Studio'yu açma

Bu bölümde, Android Studio'da gerçekleştirilen adımlar yer almaktadır.

Gradle JDK yapılandırmasını güncelleme

Dosya (veya MacOS'te Android Studio) > Ayarlar > Derleme > Yürütme > Dağıtım > Derleme Araçları > Gradle bölümünden Gradle ayarlarını açın. Gradle JDK açılır menüsünü bulun ve Gradle JDK'yı JDK 17 veya sonraki bir sürümü kullanacak şekilde ayarlayın.

Gradle JDK yapılandırmasını güncelleme

JDK 17 yüklü değilse Gradle JDK menü çubuğundan JDK'yi indir seçeneklerini belirleyin ve uyumlu bir sürümü indirin. Android Studio'nun dağıttığı sürümle eşleşecek şekilde, aarch64 desteğine sahip JetBrains çalışma zamanı tedarikçisini ö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 öğelerini güncelle

distributionUrl öğesini Gradle 8.1.1 veya daha yeni bir sürümü kullanacak şekilde ayarlayın.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

launcher/build.gradle öğelerini güncelle

  • launcher/AndroidManifest.xml öğesindeki package özelliğinin değerini kullanarak namespace özelliğini ayarlayın
  • sourceCompatibility ve targetCompatibility'yi Java 17 olarak ayarlama

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üncelleyin

  • namespace değerini "com.unity3d.player" olarak ayarlama
  • sourceCompatibility ve targetCompatibility'yi JavaVersion.VERSION_17 olarak 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ğerine ayarlayın.


apply plugin: 'android-library'

dependencies {
    implementation fileTree(dir: 'bin', include: ['.jar'])
    implementation fileTree(dir: 'libs', include: ['.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.