使用 Unity 构建适用于 Android 11 的应用

为了支持 Android 11(API 级别 30),软件包可见性 向 ARCore Extensions for AR Foundation(1.19 或更高版本)添加了 <queries> 元素。 使用这些版本的 ARCore 时,<queries> 元素需要 Gradle 版本 5.6.4 或更高版本。

在大多数情况下,应使用 Android Gradle 插件版本 3.6.0 。要确认 Android Gradle 插件和 您正在使用的 Gradle 版本,请查阅 Android Gradle 插件 兼容性表

Unity Gradle 支持

下面列出了支持的 Unity 版本的说明 部分。

如需了解详情,请参阅以下文章:

Unity 2021 及更高版本

Unity 2021 的所有版本均支持以 Android 11 为目标平台。请参阅 Unity 的 2021 年 Android 版 Gradle 文档。总结:

  • Unity 2021.1(含)2021.1.15f1 及 Gradle 5.6.4 或更高版本 (以及 Gradle 插件 3.6.0 或更高版本)。您无需执行任何操作。

  • Unity 2021.1.16f1 及更高版本附带 Gradle 6.1.1 或更高版本(以及 Gradle 插件 4.0.1 或更高版本)。您无需执行任何操作。

Unity 2020

Unity 2020 的所有版本均支持以 Android 11 为目标平台。请参阅 Unity 的 2020 年 Android 版 Gradle 文档。总结:

  • Unity 2020.1、2020.2 和 2020.3 及 2020.3.14f1 及之后的版本随带 Gradle 5.6.4 或更高版本(以及 Gradle 插件 3.6.0 或更高版本)。 您无需执行任何操作。

  • Unity 2020.3.15f1 及更高版本附带 Gradle 6.1.1 或更高版本(以及 Gradle 插件 4.0.1 或更高版本)。您无需执行任何操作。

Unity 2019.4

  1. 在 Unity 中,打开 Unity Preferences > External Tools 并设置自定义 Gradle 到 Gradle 5.6.4 或更高版本。请参阅 用于下载的 Gradle 构建工具

    External Tools(Android 窗格)的屏幕截图,其中显示了手动
指定的 Gradle 路径。

  2. 前往 Project Settings > Player > Android > Publishing Settings > Build,然后同时选择以下两项:

    1. Custom Main Gradle Template
    2. Custom Launcher Gradle Template

    显示包含这两个 Gradle 的“Publishing Settings”和“Build”窗格的屏幕截图
已选择模板选项

  3. 将以下更改应用于两个生成的文件:

    • Assets/Plugins/Android/mainTemplate.gradle
    • Assets/Plugins/Android/launcherTemplate.gradle

    移除文件顶部的以下注释(如果存在):

    // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
    

    在文件顶部插入以下几行代码:

    buildscript {
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            // Must be Android Gradle Plugin 3.6.0 or later. For a list of
            // compatible Gradle versions refer to:
            // https://developer.android.com/studio/releases/gradle-plugin
            classpath 'com.android.tools.build:gradle:3.6.0'
        }
    }
    
    allprojects {
       repositories {
          google()
          mavenCentral()
          flatDir {
            dirs 'libs'
          }
       }
    }