Редактор Unity привязан к определенной версии Gradle. В более ранних версиях Unity Editor используются более ранние версии Gradle, несовместимые с последней версией Google Mobile Ads.
Чтобы создать сборку для Android, выберите нужную версию Unity Editor:
2023.1 или более поздней версии
Включить препроцессор сборки Gradle
Препроцессор сборки Gradle включен по умолчанию в Unity Editor 2021.3.41f1 и более поздних версиях. Процессор автоматически применяет все необходимые настройки Gradle и проигрывателя, чтобы обеспечить поддержку последней версии Google Mobile Ads Unity Plugin в более ранних версиях Unity Editor.
Как вручную настроить Android и Gradle
Включите пользовательские шаблоны Gradle
Перейдите в раздел Project Settings (Настройки проекта) > Player (Проигрыватель) > Android > Publishing Settings (Настройки публикации) > Build (Сборка) и включите Custom Main Gradle Template и Custom Gradle Properties Template.
Как задать целевой уровень API
В главном меню выберите Edit (Редактировать) > Project Settings (Настройки проекта) > Player (Проигрыватель) > Android > Other Settings (Другие настройки) и установите для параметра Target API Level (Целевой уровень API) значение API Level 24 (Уровень API 24) или выше.
2021.3.41f1–2022.3
Включить препроцессор сборки Gradle
Препроцессор сборки Gradle включен по умолчанию в Unity Editor 2021.3.41f1 и более поздних версиях. Процессор автоматически применяет все необходимые настройки Gradle и проигрывателя, чтобы обеспечить поддержку последней версии Google Mobile Ads Unity Plugin в более ранних версиях Unity Editor.
Как вручную настроить Android и Gradle
Включите пользовательские шаблоны Gradle
Перейдите в раздел Project Settings (Настройки проекта) > Player (Проигрыватель) > Android > Publishing Settings (Настройки публикации) > Build (Сборка) и включите Custom Main Gradle Template и Custom Gradle Properties Template.
Как задать целевой уровень API
В главном меню выберите Edit (Редактировать) > Project Settings (Настройки проекта) > Player (Проигрыватель) > Android > Other Settings (Другие настройки) и установите для параметра Target API Level (Целевой уровень API) значение API Level 24 (Уровень API 24) или выше.
Добавьте список игнорирования Jetifier в файл `gradleTemplate.properties`
Отредактируйте файл Assets/Plugins/Android/gradleTemplate.properties, добавив в него следующую строку:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
Удалите `minSDKVersion` из `AndroidManifest.xml`.
Измените Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml и удалите android:minSdkVersion="21" из узла uses-sdk .
Ваш AndroidManifest.xml должен выглядеть следующим образом:
<?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
Требования
Прежде чем продолжить, убедитесь, что у вас есть:
- Скачайте и установите последнюю стабильную версию Android Studio.
- Дополнительную информацию о создании приложений для Android можно найти в статье Версии Java в сборках Android.
Включите пользовательские шаблоны Gradle
Перейдите в раздел Project Settings (Настройки проекта) > Player (Проигрыватель) > Android > Publishing Settings (Настройки публикации) > Build (Сборка) и включите Custom Main Gradle Template и Custom Gradle Properties Template.
Как задать целевой уровень API
В главном меню выберите Edit (Редактировать) > Project Settings (Настройки проекта) > Player (Проигрыватель) > Android > Other Settings (Другие настройки) и задайте для параметра Target API Level (Целевой уровень API) значение API Level 35 (Уровень API 35) или выше.
Экспорт в Android Studio
Измените настройки сборки Android, выбрав File (Файл) (или Unity Editor в macOS) > Build Settings (Настройки сборки), и установите флажок Export Project (Экспортировать проект).
Если вы получите предупреждение о том, что уровень API 35 платформы Android SDK отсутствует, выберите вариант Update Android SDK (Обновить Android SDK).
Откройте Android Studio.
В этом разделе описаны действия, которые выполняются в Android Studio.
Обновите конфигурацию Gradle JDK
Откройте настройки Gradle, выбрав File (Файл) (или Android Studio в macOS) > Settings (Настройки) > Build (Сборка) > Execution (Выполнение) > Deployment (Развертывание) > Build Tools (Инструменты сборки) > Gradle. Найдите раскрывающийся список Gradle JDK и выберите JDK 17 или более поздней версии.
Если у вас не установлен JDK 17, выберите вариант Download JDK (Скачать 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 на уровне проекта
Задайте разделы 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 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
Задайте для атрибута namespace значение "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 } }
Запустите проект Android
В Android Studio запустите синхронизацию Gradle и запустите проект.