Совместимость редактора Unity с Android,Совместимость редактора Unity с Android

Редактор Unity — это версия, привязанная к определенной версии Gradle , которая может конфликтовать с зависимостями, необходимыми для новых пакетов Android, таких как Google Mobile Ads. В следующем руководстве рассказывается, как создать сборку Android на более ранних версиях редактора Unity.

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

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

Предварительные условия

Обновление настроек сборки 2022.3 и более ранних версий.

Unity 2022.3 и более ранние версии требуют изменения настроек сборки перед экспортом в Android Studio.

Создайте baseProjectTemplate.gradle.

  1. Включите пользовательские шаблоны Gradle. Перейдите в «Настройки проекта» > «Плеер» > «Android» > «Настройки публикации» > «Сборка» и выберите « Пользовательский базовый шаблон Gradle» . При этом создается файл Plugins/Android/baseProjectTemplate.gradle .

  2. Измените файл Plugins/Android/baseProjectTemplate.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
    }
    

Дополнительные изменения для Unity 2021.3.37f1 и более ранних версий

Unity 2021.3.37f1 и более ранние версии требуют дополнительных изменений для обновления совместимости с Gradle 8.1.1 . Выполните следующие шаги:

Создать шаблон запуска.gradle

  1. Перейдите в «Настройки проекта» > «Плеер» > «Android» > «Настройки публикации» > «Сборка» и выберите «Шаблон Gradle средства запуска» . При этом создается файл Plugins/Android/launcherTemplate.gradle .

  2. Измените Plugins/Android/launcherTemplate.gradle , включив атрибут пространства имен. Значение атрибута пространства имен должно соответствовать атрибуту пакета, указанному в файле AndroidManifest.xml модуля запуска.

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

Создать mainTemplate.gradle

  1. Перейдите в «Настройки проекта» > «Плеер» > «Android» > «Настройки публикации» > «Сборка» и выберите «Основной шаблон Gradle» . При этом создается файл Plugins/Android/mainTemplate.gradle .

.

  1. Измените Plugins/Android/mainTemplate.gradle , включив атрибут пространства имен со значением com.unity3d.player .

    android {
        namespace 'com.unity3d.player'
    }
    

Экспорт в Android Studio

  1. Измените настройки сборки Android , чтобы экспортировать проект Unity.

  2. Чтобы экспортировать в Android Studio, измените настройки сборки Android. Выберите «Файл» (или «Редактор Unity» в macOS) > «Настройки сборки» и установите флажок «Экспортировать проект» :

  3. Нажмите кнопку «Экспорт» в нижней части диалогового окна «Настройки сборки». Unity создает проект Android в выбранном месте.

  4. Откройте экспортированный проект в Android Studio.

Обновите конфигурацию Gradle JDK для использования JDK 17.

  1. Используя Android Studio, откройте настройки Gradle в разделе «Файл» (или Android Studio в macOS) > «Настройки» > «Сборка, выполнение, развертывание» > «Инструменты сборки» > Gradle .
  2. Найдите раскрывающийся список Gradle JDK . Измените Gradle JDK для использования JDK 17 .

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

Обновить файлы оболочки Gradle

Измените параметрраспределениеUrl внутри gradle/wrapper/gradle-wrapper.properties чтобы использовать Gradle 8.0.1 или выше.

   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

Дополнительные изменения Android Studio для Unity 2021.3.37f1 и более ранних версий

Unity 2021.3.37f1 и более ранние версии требуют дополнительных изменений для обновления совместимости с Gradle 8.1.1. Выполните следующие шаги:

  1. Измените gradle.properties и удалите атрибут android.enableR8=false .

  2. Измените unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle и добавьте атрибут пространства имен со значением "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
        }
    }
    

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

После выполнения этих шагов приложение Unity готово. В Android Studio запустите gradle sync и запустите проект .

,

Редактор Unity — это версия, привязанная к определенной версии Gradle , которая может конфликтовать с зависимостями, необходимыми для новых пакетов Android, таких как Google Mobile Ads. В следующем руководстве рассказывается, как создать сборку Android на более ранних версиях редактора Unity.

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

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

Предварительные условия

Обновление настроек сборки 2022.3 и более ранних версий.

Unity 2022.3 и более ранние версии требуют изменения настроек сборки перед экспортом в Android Studio.

Создайте baseProjectTemplate.gradle.

  1. Включите пользовательские шаблоны Gradle. Перейдите в «Настройки проекта» > «Плеер» > «Android» > «Настройки публикации» > «Сборка» и выберите « Пользовательский базовый шаблон Gradle» . При этом создается файл Plugins/Android/baseProjectTemplate.gradle .

  2. Измените файл Plugins/Android/baseProjectTemplate.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
    }
    

Дополнительные изменения для Unity 2021.3.37f1 и более ранних версий

Unity 2021.3.37f1 и более ранние версии требуют дополнительных изменений для обновления совместимости с Gradle 8.1.1 . Выполните следующие шаги:

Создать шаблон запуска.gradle

  1. Перейдите в «Настройки проекта» > «Плеер» > «Android» > «Настройки публикации» > «Сборка» и выберите «Шаблон Gradle средства запуска» . При этом создается файл Plugins/Android/launcherTemplate.gradle .

  2. Измените Plugins/Android/launcherTemplate.gradle , включив атрибут пространства имен. Значение атрибута пространства имен должно соответствовать атрибуту пакета, указанному в файле AndroidManifest.xml модуля запуска.

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

Создать mainTemplate.gradle

  1. Перейдите в «Настройки проекта» > «Плеер» > «Android» > «Настройки публикации» > «Сборка» и выберите «Основной шаблон Gradle» . При этом создается файл Plugins/Android/mainTemplate.gradle .

.

  1. Измените Plugins/Android/mainTemplate.gradle , включив атрибут пространства имен со значением com.unity3d.player .

    android {
        namespace 'com.unity3d.player'
    }
    

Экспорт в Android Studio

  1. Измените настройки сборки Android , чтобы экспортировать проект Unity.

  2. Чтобы экспортировать в Android Studio, измените настройки сборки Android. Выберите «Файл» (или «Редактор Unity» в macOS) > «Настройки сборки» и установите флажок «Экспортировать проект» :

  3. Нажмите кнопку «Экспорт» в нижней части диалогового окна «Настройки сборки». Unity создает проект Android в выбранном месте.

  4. Откройте экспортированный проект в Android Studio.

Обновите конфигурацию Gradle JDK для использования JDK 17.

  1. Используя Android Studio, откройте настройки Gradle в разделе «Файл» (или Android Studio в macOS) > «Настройки» > «Сборка, выполнение, развертывание» > «Инструменты сборки» > Gradle .
  2. Найдите раскрывающийся список Gradle JDK . Измените Gradle JDK для использования JDK 17 .

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

Обновить файлы оболочки Gradle

Измените параметрраспределениеUrl внутри gradle/wrapper/gradle-wrapper.properties чтобы использовать Gradle 8.0.1 или выше.

   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

Дополнительные изменения Android Studio для Unity 2021.3.37f1 и более ранних версий

Unity 2021.3.37f1 и более ранние версии требуют дополнительных изменений для обновления совместимости с Gradle 8.1.1. Выполните следующие шаги:

  1. Измените gradle.properties и удалите атрибут android.enableR8=false .

  2. Измените unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle и добавьте атрибут пространства имен со значением "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
        }
    }
    

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

После выполнения этих шагов приложение Unity готово. В Android Studio запустите gradle sync и запустите проект .