Zgodność z Androidem w Edytorze Unity

Edytor Unity jest zablokowany na konkretną wersję Gradle, która może wchodzić w kolizję z zależnościami wymaganymi przez nowsze pakiety Androida, np. reklamy mobilne Google. Z tego przewodnika dowiesz się, jak wygenerować wersję na Androida w starszych wersjach edytora Unity.

W tabeli poniżej zalecamy maksymalną zgodną wersję wtyczki reklam mobilnych Google, której należy używać w zależności od używanej wersji edytora Unity.

Edytor Unity Zalecana wersja wtyczki reklam mobilnych Google dla środowiska Unity
2023.1 lub nowsza Najnowsze
2021.3.41f1 – 2022.3 9.1.0
2021.3.37f1 lub starsza 8.5.3

Wymagania wstępne

Aktualizacja ustawień wersji 2022.3 i starszych

Przed wyeksportowaniem projektu do Android Studio w wersji Unity 2022.3 lub wcześniejszej należy zmienić ustawienia kompilacji.

Wygeneruj plik baseProjectTemplate.gradle.

  1. Włączanie niestandardowych szablonów Gradle. Kliknij Ustawienia projektu > Gracz > Android > Ustawienia publikacji > Kompilacja i wybierz Niestandardowy szablon bazowy Gradle. Spowoduje to wygenerowanie pliku Plugins/Android/baseProjectTemplate.gradle.

  2. Zmodyfikuj plik Plugins/Android/baseProjectTemplate.gradle, aby używać narzędzi Gradle w wersji 8.1.1 lub nowszej.

    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
    }
    

Dodatkowe zmiany w wersjach Unity 2021.3.37f1 i starszych

Aby uaktualizować zgodność do wersji Gradle 8.1.1, musisz wprowadzić dodatkowe zmiany w wersji Unity 2021.3.37f1 lub starszej. Wykonaj te czynności:

Generowanie pliku launcherTemplate.gradle

  1. Kliknij Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikacji > Kompilacja i wybierz Szablon Gradle dla Launchera. Spowoduje to wygenerowanie pliku Plugins/Android/launcherTemplate.gradle.

  2. Zmień Plugins/Android/launcherTemplate.gradle, aby uwzględnić atrybut przestrzeni nazw. Wartość atrybutu przestrzeni nazw powinna być zgodna z atrybutem pakietu znajdującym się w pliku AndroidManifest.xml modułu programu uruchamiającego.

    android {
        // TODO: Replace with your app's package name.
        namespace 'com.google.android.gms.example'
    }
    

Wygeneruj plik mainTemplate.gradle

  1. Kliknij Ustawienia projektu > Odtwarzacz > Android > Ustawienia publikacji > Kompilacja i wybierz Główny szablon Gradle. Spowoduje to wygenerowanie pliku Plugins/Android/mainTemplate.gradle.

.

  1. Zmień Plugins/Android/mainTemplate.gradle, aby uwzględnić atrybut przestrzeni nazw o wartości com.unity3d.player.

    android {
        namespace 'com.unity3d.player'
    }
    

Eksportowanie do Android Studio

  1. Aby wyeksportować projekt Unity, zmień ustawienia kompilacji na Androida.

  2. Aby wyeksportować projekt do Android Studio, zmień ustawienia kompilacji Androida. Kliknij Plik (lub Edytor Unity na komputerze Mac) > Ustawienia kompilacji i zaznacz pole wyboru Eksportuj projekt:

  3. U dołu okna Ustawienia kompilacji kliknij przycisk Eksportuj. Unity wygeneruje projekt na Androida w wybranej lokalizacji.

  4. Otwórz wyeksportowany projekt w Android Studio.

Aktualizacja konfiguracji JDK w Gradle w celu użycia JDK 17

  1. W Android Studio otwórz ustawienia Gradle w sekcji Plik (lub Android Studio w systemie macOS).> Ustawienia > Kompilacja, wykonanie, wdrożenie > Narzędzia kompilacji > Gradle.
  2. Odszukaj menu Gradle JDK. Zmodyfikuj Gradle JDK, aby używać JDK 17.

    Jeśli nie masz zainstalowanej wersji JDK 17, w menu JDK Gradle wybierz opcję Pobierz JDK i pobierz zgodną wersję. Zalecamy użycie czasu wykonywania JetBrains od dostawcy, który obsługuje arch64, aby dopasować go do tego, co rozpowszechnia Android Studio.

Aktualizowanie plików oprogramowania uruchamiającego Gradle

Zmodyfikuj parametr distributionUrl w pliku gradle/wrapper/gradle-wrapper.properties, aby używać Gradle w wersji 8.0.1 lub nowszej.

   distributionBase=GRADLE_USER_HOME
   distributionPath=wrapper/dists
   zipStoreBase=GRADLE_USER_HOME
   zipStorePath=wrapper/dists
   distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip

Dodatkowe zmiany w Android Studio w wersji Unity 2021.3.37f1 i starszych

Unity w wersji 2021.3.37f1 lub starszej wymaga dodatkowych zmian, aby dostosować się do Gradle 8.1.1. Wykonaj te czynności:

  1. Zmodyfikuj atrybut gradle.properties i usuń atrybut android.enableR8=false.

  2. Zmień unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle i dodaj atrybut nazwy domeny o wartości "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 35
        buildToolsVersion '30.0.3'
        defaultConfig {
            targetSdkVersion 31
        }
    
        lintOptions {
            abortOnError false
        }
    }
    

Uruchamianie projektu na Androida

Po wykonaniu tych czynności aplikacja Unity jest gotowa. W Android Studio uruchom Gradle Syncuruchom projekt.