Edytor Unity jest powiązany z określoną wersją Gradle. Starsze wersje edytora Unity używają starszych wersji Gradle, które są niezgodne z najnowszą wersją reklam mobilnych Google.
Aby skompilować projekt na Androida, wybierz preferowaną wersję edytora Unity:
2023.1 lub nowsza
Włączanie postprocesora kompilacji Gradle
Procesor końcowy kompilacji Gradle jest domyślnie włączony w Edytorze Unity w wersji 2021.3.41f1 i nowszych. Procesor automatycznie stosuje wszystkie niezbędne ustawienia Gradle i odtwarzacza, aby obsługiwać najnowszy pakiet SDK do reklam mobilnych Google w starszych wersjach edytora Unity.
Ręczne konfigurowanie ustawień Androida i Gradle
Włączanie niestandardowych szablonów Gradle
Kliknij Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikowania > Kompilacja i włącz Custom Main Gradle Template
oraz Custom Gradle Properties Template
.

Ustaw docelowy poziom API 34
W menu głównym otwórz Edit (Edytuj) > Project Settings (Ustawienia projektu) > Player (Odtwarzacz) > Android > Other Settings (Inne ustawienia) i ustaw Target API Level (Docelowy poziom interfejsu API) na API Level 34 (Poziom interfejsu API 34) lub wyższy.

2021.3.41f1–2022.3
Włączanie postprocesora kompilacji Gradle
Procesor końcowy kompilacji Gradle jest domyślnie włączony w Edytorze Unity w wersji 2021.3.41f1 i nowszych. Procesor automatycznie stosuje wszystkie niezbędne ustawienia Gradle i odtwarzacza, aby obsługiwać najnowszy pakiet SDK do reklam mobilnych Google w starszych wersjach edytora Unity.
Ręczne konfigurowanie ustawień Androida i Gradle
Włączanie niestandardowych szablonów Gradle
Kliknij Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikowania > Kompilacja i włącz Custom Main Gradle Template
oraz Custom Gradle Properties Template
.

Ustaw docelowy poziom API 34
W menu głównym otwórz Edit (Edytuj) > Project Settings (Ustawienia projektu) > Player (Odtwarzacz) > Android > Other Settings (Inne ustawienia) i ustaw Target API Level (Docelowy poziom interfejsu API) na API Level 34 (Poziom interfejsu API 34) lub wyższy.

Dodawanie listy ignorowanych w Jetifierze do pliku `gradleTemplate.properties`
Edytuj plik Assets/Plugins/Android/gradleTemplate.properties
i dodaj ten wiersz:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
Usuń element `minSDKVersion` z pliku `AndroidManifest.xml`.
Edytuj Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml
i usuń android:minSdkVersion="21"
z węzła uses-sdk
.
AndroidManifest.xml
powinno wyglądać tak:
<?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
Wymagania wstępne
Zanim przejdziesz dalej, upewnij się, że masz:
- Pobierz i zainstaluj najnowszą stabilną wersję Android Studio.
- Opcjonalnie: szczegółowe informacje o tworzeniu aplikacji na Androida znajdziesz w artykule Wersje Javy w kompilacjach Androida.
Włączanie niestandardowych szablonów Gradle
Kliknij Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikowania > Kompilacja i włącz Custom Main Gradle Template
oraz Custom Gradle Properties Template
.

Ustaw docelowy poziom API 34
W menu głównym otwórz Edit (Edytuj) > Project Settings (Ustawienia projektu) > Player (Odtwarzacz) > Android > Other Settings (Inne ustawienia) i ustaw Target API Level (Docelowy poziom interfejsu API) na API Level 34 (Poziom interfejsu API 34) lub wyższy.

Eksportowanie do Androida Studio
Zmodyfikuj ustawienia kompilacji Androida, wybierając Plik (lub Edytor Unity na MacOS) > Ustawienia kompilacji i zaznaczając Eksportuj projekt:

Jeśli pojawi się ostrzeżenie o braku interfejsu API platformy Android SDK na poziomie 34, wybierz opcję „Zaktualizuj Android SDK”.
Otwórz Android Studio
Ta sekcja zawiera czynności wykonywane w Android Studio.
Aktualizowanie konfiguracji Gradle JDK
Otwórz ustawienia Gradle, wybierając Plik (lub Android Studio na MacOS) > Ustawienia > Kompilacja > Wykonanie > Wdrożenie > Narzędzia do kompilacji > Gradle. Znajdź menu Gradle JDK i ustaw w nim JDK 17 lub nowszą wersję.

Jeśli nie masz zainstalowanego pakietu JDK 17, wybierz opcję Pobierz JDK na pasku menu Gradle JDK i pobierz zgodną wersję. Zalecamy używanie dostawcy JetBrains runtime z obsługą architektury aarch64, aby dopasować go do wersji rozpowszechnianej przez Android Studio.
Aktualizowanie pliku build.gradle na poziomie projektu
Ustaw wersję narzędzi Gradle na 8.1.1
lub nowszą.
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 }
Zaktualizuj: /gradle/gradle-wrapper.properties
Ustaw distributionUrl
, aby używać Gradle 8.1.1 lub nowszego.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
Zaktualizuj: launcher/build.gradle
- Ustaw atrybut
namespace
, używając wartości atrybutupackage
zlauncher/AndroidManifest.xml
- Ustaw
sourceCompatibility
itargetCompatibility
na 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'
Aktualizowanie settings.gradle
na poziomie projektu
Ustaw sekcje pluginManagement
i 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" } } }
Aktualizacja pliku unityLibrary/build.gradle
- Ustaw
namespace
na wartość"com.unity3d.player"
- Ustaw
sourceCompatibility
itargetCompatibility
naJavaVersion.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' }
Aktualizacja pliku unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle
Ustaw atrybut namespace
z wartością "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 } }
Uruchamianie projektu na Androida
W Android Studio uruchom synchronizację Gradle i uruchom projekt.