Создайте Unity для Android

Редактор Unity привязан к определенной версии Gradle . Более ранние версии редактора Unity используют более ранние версии Gradle, которые несовместимы с последней версией Google Mobile Ads.

В следующей таблице показана максимально совместимая версия плагина Google Mobile Ads для использования в зависимости от вашего редактора Unity:

Редактор Unity Версия плагина Google Mobile Ads Unity
2023.1 или выше Последний
2021.3.41f1 - 2022.3 9.1.0
2021.3.37f1 или более ранняя версия 8.5.3

Вы можете вручную обновить Gradle, чтобы использовать последний плагин Google Mobile Ads Unity, включая старые редакторы Unity. Для сборки Android выберите предпочтительную версию редактора Unity:

2023.1 или выше

Предпосылки

Прежде чем продолжить, убедитесь, что у вас есть следующее:

Включить пользовательские шаблоны Gradle

Перейдите в Настройки проекта > Плеер > Android > Настройки публикации > Сборка и включите Custom Main Gradle Template и Custom Gradle Properties Template .

Включить пользовательские шаблоны Gradle

Установить целевой уровень API 34

В главном меню откройте «Правка» > «Настройки проекта» > «Проигрыватель» > «Android» > «Другие настройки» и установите целевой уровень API на API Level 34 или выше.

Установить целевой уровень API

Запустить проект Android

В Android Studio запустите gradle sync и запустите проект .

2021.3.4f1 - 2022.3

Предпосылки

Прежде чем продолжить, убедитесь, что у вас есть следующее:

  • Загрузите и установите последнюю стабильную версию Android Studio .

Включить пользовательские шаблоны Gradle

Перейдите в Настройки проекта > Плеер > Android > Настройки публикации > Сборка и включите Custom Main Gradle Template и Custom Gradle Properties Template .

Включить пользовательские шаблоны Gradle

Установить целевой уровень API 34

В главном меню откройте «Правка» > «Настройки проекта» > «Проигрыватель» > «Android» > «Другие настройки» и установите целевой уровень API на API Level 34 или выше.

Установить целевой уровень API

Экспорт в Android Studio

Измените параметры сборки Android, выбрав Файл (или редактор Unity на MacOS) > Параметры сборки и отметив пункт Экспорт проекта:

Экспортный проект

Открыть Android-студию

В этом разделе содержатся шаги, выполняемые в Android Studio.

Обновление конфигурации Gradle JDK

Откройте настройки Gradle из Файл (или Android Studio на MacOS) > Настройки > Сборка > Выполнение > Развертывание > Инструменты сборки > Gradle . Найдите раскрывающийся список Gradle JDK и установите Gradle JDK на использование JDK 17 или более поздней версии.

Обновление конфигурации Gradle JDK

Если у вас не установлен JDK 17, выберите пункт Download JDK в строке меню Gradle JDK и загрузите совместимую версию. Мы рекомендуем поставщика среды выполнения JetBrains с поддержкой aarch64, чтобы соответствовать тому, что распространяет Android Studio.

Обновите build.gradle на уровне проекта

Установите версию инструментов Gradle 8.1.1 или более позднюю.


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

Установите distributionUrl для использования Gradle 8.1.1 или более поздней версии.

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

Запустить проект Android

В Android Studio запустите gradle sync и запустите проект .

2021.3.37f1 - 2019.4

Предпосылки

Прежде чем продолжить, убедитесь, что у вас есть следующее:

  • Загрузите и установите последнюю стабильную версию Android Studio .

Включить пользовательские шаблоны Gradle

Перейдите в Настройки проекта > Плеер > Android > Настройки публикации > Сборка и включите Custom Main Gradle Template и Custom Gradle Properties Template .

Включить пользовательские шаблоны Gradle

Установить целевой уровень API 34

В главном меню откройте «Правка» > «Настройки проекта» > «Проигрыватель» > «Android» > «Другие настройки» и установите целевой уровень API на API Level 34 или выше.

Установить целевой уровень API

Экспорт в Android Studio

Измените параметры сборки Android, выбрав Файл (или редактор Unity на MacOS) > Параметры сборки и отметив пункт Экспорт проекта:

Экспортный проект

Если вы получили предупреждение об отсутствии API платформы Android SDK уровня 34, выберите опцию «Обновить Android SDK» .

Открыть Android-студию

В этом разделе содержатся шаги, выполняемые в Android Studio.

Обновление конфигурации Gradle JDK

Откройте настройки Gradle из Файл (или Android Studio на MacOS) > Настройки > Сборка > Выполнение > Развертывание > Инструменты сборки > Gradle . Найдите раскрывающийся список Gradle JDK и установите Gradle JDK на использование JDK 17 или более поздней версии.

Обновление конфигурации Gradle JDK

Если у вас не установлен JDK 17, выберите пункт Download JDK в строке меню Gradle JDK и загрузите совместимую версию. Мы рекомендуем поставщика среды выполнения JetBrains с поддержкой aarch64, чтобы соответствовать тому, что распространяет Android Studio.

Обновите build.gradle на уровне проекта

Установите версию инструментов Gradle 8.1.1 или более позднюю.


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

Установите distributionUrl для использования Gradle 8.1.1 или более поздней версии.

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

Обновление launcher/build.gradle

  • Установите атрибут namespace , используя значение атрибута package из launcher/AndroidManifest.xml
  • Установите sourceCompatibility и targetCompatibility на 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'

Обновление settings.gradle на уровне проекта.gradle

Установите разделы pluginManagement и 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"
        }
    }
}

Обновление unityLibrary/build.gradle

  • Установите namespace со значением "com.unity3d.player"
  • Установите sourceCompatibility и targetCompatibility на JavaVersion.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 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

Установите атрибут namespace со значением "com.google.unity.ads" .


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

В Android Studio запустите gradle sync и запустите проект .