Edytor Unity jest zablokowany w określonej wersji Gradle. Starsze wersje edytora Unity używają starszych wersji Gradle, które są niezgodne z najnowszą wersją pakietu SDK do reklam mobilnych Google.
Aby utworzyć kompilację na Androida, wybierz preferowaną wersję edytora Unity:
2023.1 lub nowsza
Włącz procesor wstępny kompilacji Gradle
W edytorze Unity w wersji 2021.3.41f1 i nowszych preprocesor kompilacji Gradle jest domyślnie włączony. Procesor automatycznie stosuje wszystkie niezbędne ustawienia Gradle i odtwarzacza, aby obsługiwać najnowszą wersję Google Mobile Ads Unity Plugin we wcześniejszych wersjach edytora Unity.
Ręczne konfigurowanie ustawień Androida i Gradle
Włącz niestandardowe szablony Gradle
Kliknij Project Settings > Player > Android > Publishing Settings > Build (Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikowania > Kompilacja) i włącz Custom Main Gradle Template oraz Custom Gradle Properties Template.
Ustaw docelowy poziom interfejsu API
W menu głównym otwórz Edit > Project Settings > Player > Android > Other Settings (Edytuj > Ustawienia projektu > Odtwarzacz > Android > Inne ustawienia) i ustaw Target API Level (Docelowy poziom interfejsu API) na API Level 24 (Poziom interfejsu API 24) lub wyższy.
2021.3.41f1–2022.3
Włącz procesor wstępny kompilacji Gradle
W edytorze Unity w wersji 2021.3.41f1 i nowszych preprocesor kompilacji Gradle jest domyślnie włączony. Procesor automatycznie stosuje wszystkie niezbędne ustawienia Gradle i odtwarzacza, aby obsługiwać najnowszą wersję Google Mobile Ads Unity Plugin we wcześniejszych wersjach edytora Unity.
Ręczne konfigurowanie ustawień Androida i Gradle
Włącz niestandardowe szablony Gradle
Kliknij Project Settings > Player > Android > Publishing Settings > Build (Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikowania > Kompilacja) i włącz Custom Main Gradle Template oraz Custom Gradle Properties Template.
Ustaw docelowy poziom interfejsu API
W menu głównym otwórz Edit > Project Settings > Player > Android > Other Settings (Edytuj > Ustawienia projektu > Odtwarzacz > Android > Inne ustawienia) i ustaw Target API Level (Docelowy poziom interfejsu API) na API Level 24 (Poziom interfejsu API 24) lub wyższy.
Dodawanie listy ignorowanych fragmentów kodu Jetifier do pliku `gradleTemplate.properties`
Zmodyfikuj plik Assets/Plugins/Android/gradleTemplate.properties i dodaj ten wiersz:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
Usuń `minSDKVersion` z pliku `AndroidManifest.xml`.
Edytuj Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml i usuń android:minSdkVersion="21" z węzła uses-sdk .
Plik AndroidManifest.xml powinien wyglądać mniej więcej 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 o wersjach Javy w kompilacjach na Androida.
Włącz niestandardowe szablony Gradle
Kliknij Project Settings > Player > Android > Publishing Settings > Build (Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikowania > Kompilacja) i włącz Custom Main Gradle Template oraz Custom Gradle Properties Template.
Ustaw docelowy poziom interfejsu API
W menu głównym otwórz Edit > Project Settings > Player > Android > Other Settings (Edytuj > Ustawienia projektu > Odtwarzacz > Android > Inne ustawienia) i ustaw Target API Level (Docelowy poziom interfejsu API) na API Level 35 (Poziom interfejsu API 35) lub wyższy.
Eksportowanie do Android Studio
Zmień ustawienia kompilacji na Androida, wybierając File (lub Unity Editor na macOS) > Build Settings, i zaznacz Export Project:
Jeśli pojawi się ostrzeżenie, że brakuje interfejsu API platformy Android SDK na poziomie 35, wybierz opcję Zaktualizuj pakiet Android SDK.
Otwórz Android Studio.
Ta sekcja zawiera instrukcje dotyczące czynności wykonywanych w Android Studio.
Aktualizowanie konfiguracji JDK Gradle
Otwórz ustawienia Gradle, klikając Plik (lub Android Studio na macOS) > Ustawienia > Kompilacja > Wykonanie > Wdrażanie > Narzędzia do kompilacji > Gradle. Znajdź menu Gradle JDK i ustaw Gradle JDK na wersję 17 lub nowszą.
Jeśli nie masz zainstalowanego pakietu JDK 17, wybierz opcję Pobierz JDK na pasku menu Gradle JDK i pobierz zgodną wersję. Zalecamy dostawcę środowiska wykonawczego JetBrains z obsługą aarch64, aby dopasować go do tego, co dystrybuuje 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 }
Aktualizacja reguły /gradle/gradle-wrapper.properties
Ustaw distributionUrl, aby używać Gradle 8.1.1 lub nowszej wersji.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
Aktualizacja reguły launcher/build.gradle
- Ustaw atrybut
namespace, używając wartości atrybutupackagez:launcher/AndroidManifest.xml - Ustawianie
sourceCompatibilityitargetCompatibilityna 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" } } }
Aktualizowanie pliku unityLibrary/build.gradle
- Ustaw
namespacena wartość"com.unity3d.player" - Ustaw
sourceCompatibilityitargetCompatibilitynaJavaVersion.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' }
Zaktualizuj plik unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle
Ustaw atrybut namespace na wartość "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 aplikacji na Androida
W Android Studio uruchom synchronizację Gradle i uruchom projekt.